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