Python 从列表生成的正则表达式行为异常
下面是我的代码:Python 从列表生成的正则表达式行为异常,python,regex,python-3.x,Python,Regex,Python 3.x,下面是我的代码: import re class Example: def __init__(self): self.regex_list = ['omg', '\bwow'] def print_regex(self): print('|'.join(self.regex_list)) e = Example() e.print_regex() 输出: omgwow 预期产出: omg|\bwow 因此,我有一个要使用OR运算符加入的
import re
class Example:
def __init__(self):
self.regex_list = ['omg', '\bwow']
def print_regex(self):
print('|'.join(self.regex_list))
e = Example()
e.print_regex()
输出:
omgwow
预期产出:
omg|\bwow
因此,我有一个要使用OR运算符加入的regexp列表。我希望输出是一个或多个字符串
令我惊讶的是,它没有加入,也删除了\b。这只在访问self时发生在类内部
我试着直接参加课外活动,但我不明白为什么这不起作用。有人能帮我理解这个吗
编辑:
\b
是导致管道被删除的退格字符(就像按退格键一样)。你需要绕过退格
您可以通过将\bOW
替换为\\bOW
来绕过它
#output
omg|\bwow
我明白,我明白,但是为什么直接使用而不是在课堂上使用呢?请看我的编辑。在那种情况下也不行。你能再试一次吗?太酷了。明白了,所以\b被视为退格。感谢您的帮助。它使用原始字符串工作,前缀为
r
,因为这些字符串将反斜杠视为文字字符。详见[文件]()。
#output
omg|\bwow