Форум сайта python.su
0
Добра всем!
Возникла идея использовать элементы списка 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)
Отредактировано lupanton (Март 30, 2018 23:43:47)
Офлайн
294
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'] >>>
[code python][/code]
Отредактировано PEHDOM (Март 31, 2018 02:41:07)
Офлайн
0
Разобрался уже сам. Просто измени слегка регулярку. Проблема была в том, что символ ‘i’ не воспринимался в count.
pattern = r"\b(" + word + ")" + "\\b" count = len(re.findall(pattern, text, re.IGNORECASE | re.VERBOSE))
Офлайн