我正试图在下面的文字中提到提到“gimlet”的段落。以下代码可以使用。
我有一个数据库,其中$ result ['text']包含与截图中看到的文本完全相同的文本。
$stmt = $db->prepare("SELECT * FROM updates WHERE text LIKE '%gimlet%'");
$stmt->execute(array());
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($results as $result) {
$re = '/[\*].*(gimlet)(.+?\n\n)/';
$str = $result['text'];
preg_match($re, $str, $matches);
var_dump($matches);
}
......而这从未给出任何结果。任何东西。然而,$ result ['text']的内容如下所示:
我不明白为什么它会在给出文本时起作用,但如果它从数据库中抓取文本 - 这在我看来是相同的 - 它不起作用?我怎么搞砸了?这一定是显而易见的,但我无法理解我的生活。
答案 0 :(得分:0)
我不明白为什么,但以下正则表达式在两个示例中都能完美运行。感谢@ctwheels谁给了我答案。
$re = '/\*.*(gimlet)(.+)/';