我对正则表达式有一个非常奇怪的问题,我正在使用LINK进行测试 请仅在那里进行测试,因为它与我的机器完全相同。 我应该只能看到以下文字:"审计说明3 4 5 6 7"但我可以看到一个空数组。我知道此代码适用于regex101.com请帮忙
$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(.*$)^$/ms",$string, $nmatch);
echo $nmatch[0];
答案 0 :(得分:2)
这是您更新的正则表达式:https://regex101.com/r/sSg4gb/7
$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 [\d.\s]*#",$string, $nmatch);
echo($nmatch[0]);
输出:
Audit Note by 3
4
5
6
7
请在此处查看:https://3v4l.org/hiXpY
答案 1 :(得分:2)
您可以使用^$
而不是使用\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
匹配任意类型的2个连续换行符。
<强>输出:强>
Audit Note by 3
4
5
6
答案 2 :(得分:1)
试试这个正则表达式:
preg_match("/Audit Note by (\d+\s+)+/",$string, $nmatch);
echo $nmatch[0];
它给了我:
Audit Note by 3 4 5 6 7