我有一个字符串,我想找到两个出现的地方。
$string = "xxxyyy";
preg_match_all('/xxxy|xyyy/', $string, $matches, PREG_OFFSET_CAPTURE);
print_r($matches[0]);
这就是我得到的,但我也想找到 xyyy。
Array
(
[0] => Array
(
[0] => xxxy
[1] => 0
)
)
是否有任何参数或我遗漏的东西?我也尝试过这个正则表达式,但没有运气: '/(xxxy|xyyy)/'
您滥用了替代模式。根据文档:
竖线字符用于分隔替代模式。例如,模式 gilbert|sullivan 匹配“gilbert”或“sullivan”。可以出现任意数量的替代项,并且允许使用空替代项(与空字符串匹配)。 匹配过程从左到右依次尝试每个选项,并使用第一个成功的选项。