0
我使用正則表達式+ PHP 我會匹配行匹配的前兩個單詞的前兩個字母
例如,對於該行的第一個兩個字的前兩個字母:
Mr Christophe Mailler Jean Dupon
我需要匹配:
Ch Ma
我想這正則表達式:
(?:Mr|Mme)\s+\b([a-zA-Z][a-zA-Z])
但它只匹配Ch
請幫忙嗎?
我使用正則表達式+ PHP 我會匹配行匹配的前兩個單詞的前兩個字母
例如,對於該行的第一個兩個字的前兩個字母:
Mr Christophe Mailler Jean Dupon
我需要匹配:
Ch Ma
我想這正則表達式:
(?:Mr|Mme)\s+\b([a-zA-Z][a-zA-Z])
但它只匹配Ch
請幫忙嗎?
您需要延長圖案的第二個字匹配,太像這樣:
(?:Mr|Mme)\s+([a-zA-Z]{2})\S*\s+([a-zA-Z]{2})
我也建議使用這樣的模式在PCRE引擎服用Unicode support優勢:
(?:Mr|Mme)\s+(\pL{2})\S*\s+(\pL{2})
例如:
$input = "Mr Christophe Mailler Jean Dupon";
preg_match("/(?:Mr|Mme)\s+(\pL{2})\S*\s+(\pL{2})/iu", $input, $output);
echo $output[1] . ' ' . $output[2]; // Ch Ma
工作就像一個魅力!非常感謝你 – amorino