Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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 正则表达式的唯一问题_Php_Regex - Fatal编程技术网

Php 正则表达式的唯一问题

Php 正则表达式的唯一问题,php,regex,Php,Regex,我对正则表达式有一个非常奇怪的问题,我正在使用 请只测试那里,因为它的工作原理完全一样,在我的机器上。 我应该只能看到以下文本:3 4 5 6 7的审计说明,但我可以看到一个空数组。我知道这个代码在regex101.com上有效,请帮助 试试这个正则表达式: preg_match("/Audit Note by (\d+\s+)+/",$string, $nmatch); echo $nmatch[0]; 它给了我: Audit Note by 3 4 5 6 7 试试这个正则表达式: p

我对正则表达式有一个非常奇怪的问题,我正在使用 请只测试那里,因为它的工作原理完全一样,在我的机器上。 我应该只能看到以下文本:3 4 5 6 7的审计说明,但我可以看到一个空数组。我知道这个代码在regex101.com上有效,请帮助

试试这个正则表达式:

preg_match("/Audit Note by (\d+\s+)+/",$string, $nmatch);
echo $nmatch[0];
它给了我:

Audit Note by 3 4 5 6 7 
试试这个正则表达式:

preg_match("/Audit Note by (\d+\s+)+/",$string, $nmatch);
echo $nmatch[0];
它给了我:

Audit Note by 3 4 5 6 7 

这是您更新的正则表达式:

这将产生:

Audit Note by 3 
4 
5 
6 
7

在这里查看:

这是您更新的正则表达式:

这将产生:

Audit Note by 3 
4 
5 
6 
7
请在此处查看:

而不是使用^$匹配新行,您可以使用\R并使用以下代码:

$string = "1

2

Audit Note by 3
4
5
6
7

I don't need this line

I don't need this line
";

preg_match('/^(Audit Note by.*?)\R\R/ms',$string, $nmatch);
echo $nmatch[1];
\R\R匹配任意类型的两个连续换行符

输出:

您可以使用以下代码,而不是使用^$匹配新行:

$string = "1

2

Audit Note by 3
4
5
6
7

I don't need this line

I don't need this line
";

preg_match('/^(Audit Note by.*?)\R\R/ms',$string, $nmatch);
echo $nmatch[1];
\R\R匹配任意类型的两个连续换行符

输出:


向我们粘贴regex101 linkRegex链接副本。是的,但这已解决且未被阻止!!向我们粘贴regex101 linkRegex链接副本。是的,但这已解决且未被阻止@user974435为什么需要phptester来测试它?可能是它的不推荐版本或不兼容版本。这里所有的答案都有用。这就是问题所在,伙计。没有一个答案能在我的服务器或本地主机上运行,我运行PHP5.6,但在这两个地方都不能正常工作。服务器或php设置有什么需要更改吗?你不需要php tester,看看3v4l在5.6.0-5.6.30、hhvm-3.18.4-3.21.0、7.0.0-7.2.0RC2中所说的输出,这是我唯一能在我的计算机上看到的东西:这对我来说不是在线工作的情况,我需要这个在我的服务器和本地计算机上运行。我也用phptester测试了delboy1978的代码,它运行正常。不知道为什么不会t@user974435为什么需要phptester来测试它?可能是它的不推荐版本或不兼容版本。这里所有的答案都有用。这就是问题所在,伙计。没有一个答案能在我的服务器或本地主机上运行,我运行PHP5.6,但在这两个地方都不能正常工作。服务器或php设置有什么需要更改吗?你不需要php tester,看看3v4l在5.6.0-5.6.30、hhvm-3.18.4-3.21.0、7.0.0-7.2.0RC2中所说的输出,这是我唯一能在我的计算机上看到的东西:这对我来说不是在线工作的情况,我需要这个在我的服务器和本地计算机上运行。我也用phptester测试了delboy1978的代码,它运行正常。不知道为什么不会