#python #regex #python-3.x
#python #регулярное выражение #python-3.x
Вопрос:
Используя Python 3.x, я просматриваю файлы журналов, и в большинстве строк есть одно из трех ключевых слов (INFO, ERROR или WARN).
Я определяю регулярное выражение, чтобы увидеть, содержит ли строка любое из этих слов как:
INFO|ERROR|WARN
Я был уверен, что это правильный путь для решения этой проблемы, но, похоже, он не работает. Кто-нибудь знает, чего мне здесь не хватает?
Я проверяю, есть ли регулярное выражение в строке, просто печатая его:
Properties.py
status = "INFO|ERROR|WARN"
Runner.py
import properties as p
import re
line = "[time stamp] INFO [other information]"
print(p.status in line)
line = "[time stamp] ERROR [other information]"
print(p.status in line)
Выходной сигнал:
False
False
Он печатает только ложь.
Комментарии:
1. И где ваш вызов функций регулярных выражений?
2.
_ in _
, когда аргументы являются строками, проверяет наличие подстрок. Регулярные выражения не встроены в Python.3. Вау. Я не мог мыслить ясно. Извините, что потратил время всех.
Ответ №1:
Вам нужно фактически вызвать одну или несколько функций in re
(не использовать in
), чтобы использовать механизм регулярных выражений:
print(bool(re.search(p.status, line)))
Комментарии:
1. Спасибо. Глупая ошибка, не думал ясно.