#regex
#регулярное выражение
Вопрос:
Я создаю веб-паук для получения информации с определенного веб-сайта. Имена на веб-сайте представлены в формате «СМИТ, ДЖОН ЭНТОНИ» или «СМИТ-младший, ДЖОН ЭНТОНИ».
Регулярное выражение, которое я использую, это, [A-Z] , [A-Z] [A-Z]
. Я бы хотел, чтобы регулярное выражение также отображало «JR», если имя отформатировано таким образом. Обязательное предложение, в котором говорится, что я новичок в регулярных выражениях и что это мой первый пост в Stack Overflow.
[A-Z] , [A-Z] [A-Z]
Ответ №1:
Вы можете использовать необязательную группу (?: [A-Z] )?
для сопоставления пробела и 1 раз от А доЯ:
[A-Z] (?: [A-Z] )?, [A-Z] [A-Z]
Вы можете использовать границы слов b
, добавленные и добавленные, чтобы убедиться, что первое и последнее совпадение не является частью более крупного слова.
b[A-Z] (?: [A-Z] )?, [A-Z] [A-Z] b