1 回答

TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個贊
您可以使用
if (preg_match('~(?: [A-Z]{2})+$~', $s, $match)) {
print_r(explode(" ", trim($match[0])));
}
在這里,(?: [A-Z]{2})+$匹配一個或多個空格序列,然后匹配兩個大寫 ASCII 字母直到字符串結(jié)尾,然后explode(" ", trim($match[0]))將修剪后的匹配與空格分割成塊。
或者,如果您想用一個正則表達(dá)式調(diào)用匹配所有出現(xiàn):
if (preg_match_all('~(?:\G(?!\A)|(?=(?:\s[A-Z]{2})+$))\s\K[A-Z]{2}~', $s, $matches)) {
print_r($matches[0]);
}
在這里,正則表達(dá)式匹配:
(?:\G(?!\A)|(?=(?:\s[A-Z]{2})+$))
- 上一個匹配的結(jié)尾 (\G(?!\A)
) 或 (|
) 緊跟一個或多個空格序列的位置,然后是兩個大寫 ASCII 字母,直到字符串結(jié)尾\s
- 一個空格\K
- 匹配重置運(yùn)算符[A-Z]{2}
- 兩個大寫的 ASCII 字母。
請參閱PHP 演示。
- 1 回答
- 0 關(guān)注
- 200 瀏覽
添加回答
舉報