我正尝试取消转义的正则表达式模式,以将其应用于字符串。 它实际上是动态的,我并不完全知道它是什么样子,但是在我的整个测试过程中,我遇到了一个问题,带有转义正则表达式模式的字符串如下所示:
\\d{4}
我写了一个简单的正则表达式,它替换了反斜杠和字符with just a character
的每个组合我正以这种方式应用它:
sub(r"\\(.)", "\\1", escaped_pattern)
但是后来给我的是d{4}
,而不是我所期望的\d{4}
。
我已经尝试过使用原始字符串进行repl,对它进行转义\转义,它仍然没有返回我期望返回的值。不胜感激。
编辑
escaped_pattern = settings.reg_exp
regexp = sub(r"\\(.)", "\\1", escaped_pattern)
search(regexp, string_to_regexp).group()[0]
答案 0 :(得分:1)
根据您的更新,我非常确定,如果您只是停止尝试对其进行转义,那么您将获得所需的输出。
import re
s1 = "1234astring"
matches = re.search("\\d{4}", s1)
matches.group(0)
"1234"
matches.group()[0]
"1"
答案 1 :(得分:0)
在搜索模式中尝试r"\\\\(.)"
在替代模式中尝试'\\\1'
。
在这里工作正常:https://regex101.com/r/M3ikqj/1