带有preg_match_all的所有大写字符串

时间:2014-10-22 07:10:59

标签: php regex preg-match-all

对于那些比我自己更擅长正则表达的人来说,这可能是一个快速的解决方案,但基本上我正在尝试的是采用一种语言光泽(如下所示)

  

E Q that.thing.IN何时存在LOC?

并拉出所有完全是大写的部分并将它们放入一个数组中。我已经使用了:

preg_match_all("|[A-Z]|U",$text,$GLOSSES,PREG_PATTERN_ORDER);

但这会产生如下数组:

E, Q, I, N, L, O, C

我需要的是:

E, Q, IN, LOC

任何人都可以帮忙吗? :)

非常感谢!

1 个答案:

答案 0 :(得分:1)

使用世界边界元词量\b来确定单词

正则表达式将是

\b[A-Z]+\b

确保正则表达式在大写单词的两端以字边界\b绑定

preg_match_all("\b[A-Z]+\b",$text,$GLOSSES,PREG_PATTERN_ORDER);

将输出

E, Q, IN, LOC