匹配前两个单词的前两个字母

时间:2014-03-25 22:13:03

标签: php regex

我正在使用正则表达式+ php 我会匹配一行中前两个单词的前两个字母

例如对于行:

Mr Christophe Mailler Jean Dupon

我需要匹配:

Ch Ma

我试过这个正则表达式:

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

但它只匹配Ch

请帮忙吗?

1 个答案:

答案 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