2014-10-22 40 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