Нужен шаблон регулярных выражений для анализа элементов строки, которые похожи - PullRequest
1 голос
/ 02 апреля 2020

Например, я пытаюсь разобрать строку:

# 12 Alabama St. (AL) (12-14)

Что будет регулярное выражение, чтобы выбрать "Alabama St. (AL)"? Я могу получить (12-14), используя:

\(([0-9]{1,2}-[0-9]{1,2})\)

1 Ответ

1 голос
/ 02 апреля 2020

Вы можете использовать

#\d+\s*(.*?)\s*\(\d{1,2}-\d{1,2}\)

См. Демоверсию regex .

Подробности

  • #\d+ - # и затем 1+ цифр
  • \s* - 0+ пробелов
  • (.*?) - Группа 1: любые 0+ символов, кроме символов перевода строки, как можно меньше
  • \s* - 0+ пробелов
  • \(\d{1,2}-\d{1,2}\) - (, 1 или 2 цифры, -, 1 или 2 цифры, ).

Python демо :

import re
text = "#12 Alabama St. (AL) (12-14)"
m = re.search(r'#\d+\s*(.*?)\s*\(\d{1,2}-\d{1,2}\)', text)
if m:
  print(m.group(1)) # => Alabama St. (AL)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...