我试图在每个分号出现后才得到所有单词(姓氏)。
我试过这个正则表达式,但它无法正常工作:
(?:.*?;)([a-zA-ZñÑ]+)
以下是我要使用正则表达式过滤的示例行:
Walter Shelter,玛丽;约翰逊史密斯,罗伯特迪金森女王,帕蒂
以下是我想要的结果:
Walter Johnson Dickinson
事先,非常感谢你的帮助!
答案 0 :(得分:2)
您可以使用此正则表达式:
(?:(?<=^)|(?<=; ))\w+
或者这个较短的一个:
(?<=; |^)\w+
<强>代码:强>
$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
)