正则表达式。如何在分号后得到单词

时间:2015-03-10 09:13:31

标签: php regex

我试图在每个分号出现后才得到所有单词(姓氏)。

我试过这个正则表达式,但它无法正常工作:

(?:.*?;)([a-zA-ZñÑ]+)

以下是我要使用正则表达式过滤的示例行:

  

Walter Shelter,玛丽;约翰逊史密斯,罗伯特迪金森女王,帕蒂

以下是我想要的结果:

  

Walter Johnson Dickinson

事先,非常感谢你的帮助!

1 个答案:

答案 0 :(得分:2)

您可以使用此正则表达式:

(?:(?<=^)|(?<=; ))\w+

或者这个较短的一个:

(?<=; |^)\w+

RegEx Demo

<强>代码:

$s = 'Walter Shelter, Mary; Johnson Smith, Robert; Dickinson Queen Patty';
preg_match_all('/(?<=; |^)\w+/', $s, $m);
print_r($m);

<强>输出:

Array
(
    [0] => Walter
    [1] => Johnson
    [2] => Dickinson
)