RegEx是['w|'W]*'s['w|'W]*
,字符串是aaab@ asd123
,因为我认为['w|'W]*
等于'w*|'W*
,这意味着多个单词字符或非单词字符…怎么能像aab@
那样同时有文字和非文字字符呢?
注意:您的字符串似乎是用空格分隔的,所以您可以只使用explode(" ", $s)
。下面的答案只是解释一下regex是如何工作的。
我相信你误解了['w|'W]*
和'w*|'W*
:第一个匹配任何0+字符,第二个匹配0+单词字符或0+非单词字符。
你似乎想匹配0+非空白字符,使用'S+
:
'S+'s+'S+
或者,捕获两个非空白部分:
('S+)'s+('S+)
+
将使模式匹配一次或多次出现的非空白模式。
查看regex演示