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