Как искать несколько параметров поиска в библиотеке Python - PullRequest
0 голосов
/ 22 марта 2020

Я пытаюсь найти строки в скобках, используя метод re.search. Из моих примеров x я могу только найти 'Parkwoods', но не могу найти ни одну из других строк.

Это то, что я делал изначально, добавив \ s для пробелов и т. Д. c., Но я все еще не могу найти Garden District, Райерсон и Риджент-парк / Harbourfront

match = re.search(r"\((\w+)\)", x)

где x может равняться

North York(Parkwoods)
Downtown Toronto(Garden District, Ryerson)  
Downtown Toronto(Regent Park / Harbourfront)

Как передать несколько параметров поиска методу search? И как мне искать форварда сла sh?

1 Ответ

2 голосов
/ 22 марта 2020

Попробуйте следующее регулярное выражение:

\((\w|,| |\/)+\)

В терминах кода: re.search(r"\((\w|,| |\/)+\)", x)

Объяснение:

(и): match самые внешние скобки

() +: один или несколько элементов из (), используемых для обозначения "или"

\ w |, | | /: совпадать с альфа-цифрой c ИЛИ запятой "," ИЛИ "" (пробел "ИЛИ" / "(обратная сторона sh, которую мы экранируем как" / ")

Попробуйте поиграть на: https://regexr.com/

Редактировать: другие комментарии основаны на отрицательном множестве [^)], но это будет соответствовать ЛЮБОМУ символу, а не правильному паренсу. Возможно, вы захотите ввести более строгие правила, основанные на ваших Например, оно будет соответствовать (&&&*$$) в центре Торонто (&&&*$$), что вы можете или не можете хотеть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...