Альтернативных для получения первых двух наименований:
\w*\s\w*(?=\sJ\.)
Regex live here.
Разъяснение:
\w*\s # the first word (name) followed by space
\w* # the second word (name)
(?=\sJ\.) # must end with space and "J." - without taking it
Совет: Как правило, чтобы избежать регулярных выражений метасимволы (как точка .
) мы используем обратную косую черту. Используйте класс символов, например [.]
, если вы хотите сделать акцент на этом символе (если вы хотите сделать его более заметным, когда будете читать это регулярное выражение).
Я предложу использовать этот шаблон = \ w * \ s \ w * (?) надеюсь, что он сработает. Я проверил сайт live regex ... попробуйте ... – pedram