Правильное использование Regex для анализа списка строкPython

Программы на Python
Ответить
Anonymous
 Правильное использование Regex для анализа списка строк

Сообщение Anonymous »

У меня есть один список

Код: Выделить всё

list = ['word one', 'two', 'Three', 'four five' 'four']
И у меня есть такой текст:

Код: Выделить всё

txt_to_parse = "This is word one with four letters and four five characteristics for people #gopeople"
Я хочу получить совпадение между list и txt_to_parse, чтобы конечный результат был

Код: Выделить всё

#gopeople (goup(0) - #, Group(1) - gopeople
four - position xy string match - 'four'
four - position yz string match - 'four'
four five - position yz string match - 'four five'
Порядок не имеет значения, но я предполагаю, что это будет re.finditer()
Есть ли лучший способ решить эту проблему, кроме создания список (List_loop) re.compile для каждого требования:
  • хэштег или упоминание, за которым следуют слова
  • re .компилировать для всех ключевых слов в списке
затем просматриваем каждый элемент в list_loop и выполняем re.finditer и получаем все совпадения?
Примерно так:

Код: Выделить всё

fruit_list = ['apple banana', 'apple', 'pineapple', 'banana', 'banana apple',  'kiwi']
fruit = re.compile('|'.join(fruit_list))
fruit_re = [ re.compile(r'\b'+re.escape(fruit)+r'\b') for fruit in fruit_list]
fruit_re.append(re.compile( r'([#@])(\w+)|\b'))

string = "this is apple is banana apple #apple"

for ft in fruit_re:
print(ft)
match = re.finditer(ft, string)

for mat in match:
print(mat)
Или есть ли лучший/более быстрый способ добиться этого. Список ключевых слов будет около 100 тысяч, а фактическая строка может состоять из нескольких строк.
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/791 ... of-strings
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»