У меня есть файл, который имеет следующий вход:Почему это регулярное выражение не соответствует строке с символом процента?
xa%1bc
ba%1bc
.
.
и так далее. Я хочу использовать match
и regex
, чтобы идентифицировать линии, в которых есть a%1b
. Я использую
import re
p1 = re.compile(r'\ba%1b\b', flags=re.I)
if re.match(p1,linefromfile):
continue
Это не кажется, что обнаружить линию с 1%. В чем проблема? Благодаря
вопрос является '\ b' вокруг рисунка. Это означает «граница слов», поэтому это не соответствует ни одному из ваших примеров. Кроме того, вам не нужно регулярное выражение, чтобы просто проверить подстроку. –
Есть несколько проблем. Сначала вы должны просто [использовать 'in'] (http://stackoverflow.com/questions/5319922/python-check-if-word-is-in-a-string). Во-вторых, вы проверяете границы слов, где их нет. В-третьих, вы смотрите только на начало строки с 'match', когда [вам нужно« искать »для поиска во всей строке] (http://stackoverflow.com/questions/14933771/python-regular-expression-re -match-почему-это-кода делает-не-работа). – TigerhawkT3