在PHP的正则表达式函数中,是否有一种方法可以获取正则表达式的所有可能匹配,即使这些匹配重叠?
例如:获取所有3位数字子字符串 '/[\d]{3}/' ...
你可能期望得到:
"123456" => ['123', '234', '345', '456']
但是 preg_match_all() 只返回
['123', '456']
这是因为它从上一个匹配的子串的结尾开始搜索(如文档中所述):
"找到第一个匹配项后,后续的搜索将从最后一个匹配项结束的位置继续进行。"
是否有一种方法可以解决这个问题而不编写自定义解析器呢?