Найти - Пользователи
Полная версия: Использование regex совместно с for...
Начало » Python для новичков » Использование regex совместно с for...
1
lupanton
Добра всем!
Возникла идея использовать элементы списка words в качестве исходной информации для анализа многострочного текста text. Вот так:

 import re
words = ['i', 'one', 'kan']
text = ''' Walmart’s revenue eclipsed $500 billion in its latest fiscal year—more than Apple i Inc.
and Exxon Mobil Corp. combined i. But Walmart’s profits one boy have declined 30% over three years
to $10.5 billion, Boy squeezed by competition and kan e-commerce One investments to fend Kan off AmazonInc.
'''
for word in words:
    pattern = 'r' + '\"' + '\\b' + '\\' + word + '\"'
    print(pattern)
    count = re.findall(pattern, text, re.IGNORECASE | re.VERBOSE)

Но…
1. pattern выдает в print обнадеживающий результат r“\b\i” на первой итерации
2. Но count не воспринимает это выражение и выдает ошибку error: bad escape \i at position 4
Вопрос: это вообще светлая тема? Как имплантировать нужное мне слово в regex? Как еще можно сделать?


PEHDOM
pattern = ‘r’ + ‘\“’ + ‘\\b’ + ‘\\’ + word + ‘\”’
обьясните что вы хотите найти таким макаром? Зачем столько кавычек и слешей? ИМХО у вас в тексте нету строки соответвующей ни одному из шблонов поиска: r“\b\i”, r“\b\one”, r“\b\kan”

 for word in words:
    pattern = r'\b' + word     # Так
    #pattern = '\\b' + word  # Или так, в принципе один хрен https://docs.python.org/3/library/re.html
    print(pattern)
    count = re.findall(pattern, text, re.IGNORECASE | re.VERBOSE)
    print(count)
>>> 
\bi
['i', 'i', 'i', 'I', 'i', 'i']
\bone
['one', 'One']
\bkan
['kan', 'Kan']
>>> 



lupanton
Разобрался уже сам. Просто измени слегка регулярку. Проблема была в том, что символ ‘i’ не воспринимался в count.
 pattern = r"\b(" + word + ")" + "\\b"
    count = len(re.findall(pattern, text, re.IGNORECASE | re.VERBOSE))
Хотя, наверное, можно было и проще.
Спасибо.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB