2014-10-22 71 views
0

这可能是一个比我更擅长正则表达式的快速解决方案,但基本上我想要的是采取一条语言的光泽线(如下:)所有字符串大写与preg_match_all

EQ that.thing.IN when exists LOC?

并拉出完全大写的所有部分,并将它们放入数组中。据我已经得到的使用:

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

但是这使得一个数组,如:

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

和我需要的是:

E, Q, IN, LOC 

谁能帮助? :)

非常感谢!

回答

1

使用世界边界metasequance \b以确定单词作为这样

正则表达式将是

\b[A-Z]+\b 

确保了正则表达式是由字边界\b在大写字的两端结合

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

会输出为

E, Q, IN, LOC 
+0

谢谢!完美的工作^ _^ – hashi 2014-10-22 07:19:47

+0

@hashi很高兴听到它工作:) – nu11p01n73R 2014-10-22 07:26:43