python-3.x 正则表达式错误:“bad escape \c at position 3”-如何解决?

bcs8qyzn  于 2023-11-20  发布在  Python
关注(0)|答案(3)|浏览(606)

我的模式在正则表达式中无法编译,并给出了糟糕的转义错误,有什么方法可以解决吗?

import re 
text = "n\\c" 
pattern = rf"\\b{text.lower()}\\b" 
re.search(pattern, "hello", flags=re.IGNORECASE)

字符串
Python - 3.8,重新版本- 2.2.1
我想使用模式中的文本在我的搜索字符串中找到它,例如“hello”。
实施例1
text =“a sleep”,sentence=“A lazy fox jump over a sleeping dog”,输出:无
实施例2
text =“a sleeping”,sentence=“A lazy fox jump over a sleeping dog”输出:“a sleeping

5kgi1eie

5kgi1eie1#

在你的代码中,你使用了一个f字符串来构造模式,但你也使用了\b单词边界转义序列和双反斜杠。然而,\b和双反斜杠在这种情况下是不必要的。
因此,要解决此问题,您可以按如下方式修改代码:

import re
text = r"n\\c"
pattern = re.escape(text.lower())
print(pattern)
match = re.search(pattern, "hello", flags=re.IGNORECASE)
print(match)

字符串

5m1hhzi4

5m1hhzi42#

这里有一个例子。

text = "a sleep"
sentence= "A lazy fox jump over a sleeping dog"
m = re.search(rf'(?i)\b{re.escape(text)}\b', sentence)

字符串

h79rfbju

h79rfbju3#

  • 旧版本 * Python正则表达式限制了它不支持的转义序列。

它抛出错误。
大多数引擎只是剥夺了逃生。

>>> import re
>>> pat = "\c"
>>> re.search(pat, "hello")
re.error: bad escape \c at position 0

字符串
\cX是一个 Control Character 结构,需要 X
有很多引擎支持。Python是其中之一吗?

相关问题