Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 正则表达式s修饰符,不工作?_Php - Fatal编程技术网

Php 正则表达式s修饰符,不工作?

Php 正则表达式s修饰符,不工作?,php,Php,好的,我是regex的noob,我正在使用这个网站作为我的regex入门: 问题:使用s修饰符,下面的代码假设是回显4,因为它找到了4个换行符 然而,当我运行这个时,我得到了一个1,为什么 使用第一场比赛后不会停止的 preg_match返回模式匹配的次数。这将是0次不匹配或1次,因为preg_match将在第一次匹配后停止搜索。所有相反的预匹配都将继续,直到主题结束。如果发生错误,preg_match返回FALSE- 但是,代码仍将只输出1,因为您要匹配的是regex sex.at.noon,

好的,我是regex的noob,我正在使用这个网站作为我的regex入门:

问题:使用s修饰符,下面的代码假设是回显4,因为它找到了4个换行符

然而,当我运行这个时,我得到了一个1,为什么

使用第一场比赛后不会停止的

preg_match返回模式匹配的次数。这将是0次不匹配或1次,因为preg_match将在第一次匹配后停止搜索。所有相反的预匹配都将继续,直到主题结束。如果发生错误,preg_match返回FALSE-

但是,代码仍将只输出1,因为您要匹配的是regex sex.at.noon,而不是换行符。

将只返回0或1,因为它在第一次模式匹配后停止。如果使用,它仍将返回1,因为您的模式在匹配的字符串中只匹配一次

如果您希望通过正则表达式获得换行数:

echo preg_match_all("/\n/m", $string, $matches);
或通过字符串函数:

echo substr_count($string, "\n");

谢谢,完全忘记这一点,要么0次表示没有比赛,要么1次表示有比赛。那么,为什么作者说我应该得到4,见附件链接?这是一个好问题。我认为他只是犯了一个错误,之前匹配过类似的东西$
echo substr_count($string, "\n");