我有这样一句话:"AOrbOrCOrOrOr"。我试着把所有的单词都匹配成"A"b"C";等等。但是,它只是返回"A"b或"cOr";,。。。这是我的图案:/(.*?(?:(?=Or))|(?<!Or).*?)/
。我对正则表达式很陌生。
使用正则表达式的另一种选择是使用explode()
:
$string = 'AOrbOrCOrDOreOrdOr...';
$words = explode('Or', $string);
请注意,如果您有一个常量分隔符,如Or
,您可以使用explode()
,这比使用正则表达式更快。
只需在正则表达式中使用前瞻性来匹配后面跟着字符串Or
、的所有字母
[A-Za-z](?=Or)
演示
如果要匹配后面跟着字符串Or
的任何字符,则可以使用.
而不是[A-Za-z]
。
.(?=Or)
演示
您可以使用分解函数:
$text = "AOrbOrCOrDOreOrdOr...";
$array = explode('Or', $text);
然后你就有了一个包含部分的数组:
array("A", "b", "C", "D", "e",) // ...and so on