2014-03-25 70 views
0

我使用正則表達式+ PHP 我會匹配行匹配的前兩個單詞的前兩個字母

例如,對於該行的第一個兩個字的前兩個字母:

Mr Christophe Mailler Jean Dupon 

我需要匹配:

Ch Ma 

我想這正則表達式:

(?:Mr|Mme)\s+\b([a-zA-Z][a-zA-Z]) 

但它只匹配Ch

請幫忙嗎?

回答

2

您需要延長圖案的第二個字匹配,太像這樣:

(?: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 
+0

工作就像一個魅力!非常感謝你 – amorino

相關問題