Я хочу использовать ввод от пользователя в качестве шаблона регулярного выражения для поиска по некоторому тексту. Это работает, но как я могу обрабатывать случаи, когда пользователь помещает символы, которые имеют значение в регулярное выражение Например, пользователь хочет найти Word (s)
: движок регулярных выражений будет принимать (s)
группу. Я хочу, чтобы это воспринималось как строка "(s)"
. Я могу работать replace
на входе пользователя и заменить (
с \(
и )
с , \)
но проблема в том , мне нужно будет сделать замену для каждого возможного символа регулярных выражений. Вы знаете какой-нибудь лучший способ?
repl
Аргументre.sub
является строкой, а не регулярное выражение; применятьre.escape
к этому не имеет никакого смысла в первую очередь.repl
аргумент не является простой строкой, он анализируется. Например,re.sub(r'(.)', r'\1', 'X')
вернетсяX
, а не\1
.repl
аргумента: stackoverflow.com/q/49943270/247696Пожалуйста, попробуйте:
\ Q и \ E как якоря
Поместите условие Or, чтобы оно соответствовало либо полному слову, либо регулярному выражению.
Ссылка на ссылку: Как сопоставить целое слово, содержащее специальные символы в регулярном выражении
источник