#python #string #parsing #partial
#python #строка #синтаксический анализ #частичное
Вопрос:
Я использую пакет синтаксического анализа для извлечения некоторой информации из строк. У меня есть шаблон, подобный:
pattern = compile("hello {}")
s = "I am Jack, hello Mike, hello Tom! nice to meet you."
pattern.parse(s)
Я хочу извлечь « Mike
, « Tom
из s, независимо от того, что находится до и после совпадающих шаблонов в строке. Как я должен изменить свой шаблон?
Комментарии:
1.
parse
Действительно ли это необходимо здесь? Для этого случая хорошо подходит очень распространеннаяre
библиотека.
Ответ №1:
Используйте re.findall
примерно так:
import re
s = "I am Jack, hello Mike, hello Tom! nice to meet you."
names = re.findall(r'[Hh]ellos (w )', s)
print(names)
# ['Mike', 'Tom']
Комментарии:
1. Это хорошее решение для данного случая. Спасибо. К сожалению, я действительно тупой, и у меня есть еще куча шаблонов, которые нужно найти в моих данных. Поэтому, если синтаксический анализ может работать, он предпочтительнее.