preg_match_all('/[\s]{1}(AA|BB|CC)+[\s]{1}/',' AA BB ',$matches);
Run Code Online (Sandbox Code Playgroud)
结果是AA,但我需要AA和BB.
[\s]{1}您用来匹配匹配项之间的空白重叠的序列* 。后面的尾随空格"AA "与前面的空格相同" BB"。任何一个字符只能匹配一次,因此在扫描找到后," AA "它只会在剩余的"BB "字符串中搜索匹配项,而无法找到匹配项。
请尝试使用单词边界转义序列\b。这匹配单词的开头和结尾,但实际上不消耗任何字符,因此它可以匹配多次:
preg_match_all('/\b(AA|BB|CC)+\b/', 'AA BB', $matches);
Run Code Online (Sandbox Code Playgroud)
使用它\b的好处是不需要字符串周围有额外的空格。'AA BB'如果您愿意,您可以直接通过' AA BB '。
* 顺便说一句,[\s]{1}与 是同一件事[\s],与简单的 相同\s。不需要方括号或大括号。
| 归档时间: |
|
| 查看次数: |
195 次 |
| 最近记录: |