Я пытаюсь получить все слова (фамилии) только после каждого появления точки с запятой.
Я пробовал это регулярное выражение, но он не работает правильно:
(?:.*?;)([a-zA-ZñÑ]+)
Вот пример строки, которую я хочу отфильтровать с помощью регулярного выражения:
Уолтер Шелтер, Мэри; Джонсон Смит, Роберт; Дикинсон Куин, Пэтти
Вот результат, который я хочу получить:
Уолтер Джонсон Дикинсон
Заранее спасибо большое за помощь!
Вы можете использовать это регулярное выражение:
(?:(?<=^)|(?<=; ))\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
)