使用带有PHP的正则表达式检查段落中的一些表达式

时间:2016-06-07 19:01:28

标签: php regex

我想在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;

我不知道为什么,请帮忙。

2 个答案:

答案 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