Как бы я извлечь подстроку из строки, которая содержит скобки, используя Python? - PullRequest
1 голос
/ 10 июля 2019

У меня есть следующая строка:

Быстрая коричневая лиса, кошка в (шляпе) и собака в фунте. Кот в THE (шапка):

Мне нужна помощь в извлечении следующего текста:

1) кот в (шапке)

2) Кот в ТЕ (шапка)

Я пробовал следующее:

p1 = """The quick brown fox, the cat in the (hat) and the dog in the pound. The Cat in THE (hat)"""
pattern = r'\b{var}\b'.format(var = p1)
with io.open(os.path.join(directory,file), 'r', encoding='utf-8') as textfile:
    for line in textfile:
        result = re.findall(pattern, line)
print (result)

1 Ответ

4 голосов
/ 10 июля 2019

Строго сопоставляя эту строку, вы можете использовать это регулярное выражение. Чтобы обобщить на будущее, (?i) в начале заставляет игнорировать регистр и использовать \ для экранирования скобок.

import re
regex = re.compile('(?i)the cat in the \(hat\)')
string = 'The quick brown fox, the cat in the (hat) and the dog in the pound. The Cat in THE (hat):'
regex.findall(string)

Результат:

['the cat in the (hat)', 'The Cat in THE (hat)']
...