我正在使用正则表达式+ php 我会匹配一行中前两个单词的前两个字母
例如对于行:
Mr Christophe Mailler Jean Dupon
我需要匹配:
Ch Ma
我试过这个正则表达式:
(?:Mr|Mme)\s+\b([a-zA-Z][a-zA-Z])
但它只匹配Ch
请帮忙吗?
答案 0 :(得分: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