正则表达式(PHP) - 如何使用多行匹配尽可能多的次数

时间:2015-03-19 06:56:21

标签: regex

字符串块:

abc
de
xxx
a
bcd
e

如何匹配 abcde 两次?换行可以在任何地方发生。

/a.*e/s  matches whole block once.

Regex Fiddle here.

3 个答案:

答案 0 :(得分:2)

使用贪心操作员?

a.*?e

而不是

a.*e

你正在使用的是试图给你最大可能的匹配,这是在整个字符串的第一个匹配中完成的,这就是你只得到一个匹配的原因。

我在regexpal

上试了一下

答案 1 :(得分:1)

使用str_replace删除中断(\ r \ n)。

$string= str_replace("\r\n","",$stringblock);

然后你可以检查$ string是否匹配。

答案 2 :(得分:0)

a\s*b\s*c\s*d\s*e

可以使用此功能完成,但不能扩展。请参阅演示。

https://regex101.com/r/pT4tM5/15