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