我想在PHP中使用正则表达式来检查文本是否至少有两个段落,第一段以“实际”开头,另一段以“我建议”开头。
例如,我测试了这个:
$text = "In fact Paris is more beautiful than Berlin.
I suggest we go to Paris this summer."
$value = preg_match ( "/ (^ In fact (.)) (I suggest). * /", $text);
echo $value;
I get $value = 0;
我得到$ value = 0;
我不知道为什么,请帮忙。
答案 0 :(得分:2)
您需要添加修饰符\s
和量词*
(example)
(^In fact (.*))\s(I suggest(.*))
\s
匹配任何空白字符,例如\n
和\r
,换行符。您的代码现在应该如下所示:
$value = preg_match ( "/(^In fact (.*))\s(I suggest(.*))/", $text);
现在$value
将为1。
答案 1 :(得分:1)
这应该有用。
$text = "In fact Paris is more beautiful than Berlin.
I suggest we go to Paris this summer.";
if(preg_match ( "/^In fact(.*)I suggest/s", $text)){
echo 'true';
} else {
echo 'false';
}
在你的正则表达式中,. *
允许其中一个字符.
,然后是任意数量的空格*
。这个(.)
允许一个空格。
我没有看到您要捕获的内容,因此我删除了您的捕获组。 s
修饰符允许.
匹配新行。
正则表达式演示:https://regex101.com/r/vW2oZ8/1
PHP演示:https://eval.in/584773