正则表达式从列表构建行为异常

时间:2018-11-04 05:43:46

标签: 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运算符加入的正则表达式列表。我这样做是希望输出是OR连接的字符串。

令我惊讶的是,它没有加入,并且也删除了\ b。这仅在访问自我时在班级内部发生。

我尝试直接在有效的课堂之外加入,但我不明白为什么这不起作用。有人可以帮助我理解这一点吗?

编辑:

regex_list = ['omg', r'\bwow']
print('|'.join(regex_list)) # Works outside the class

1 个答案:

答案 0 :(得分:2)

\b是退格字符,导致删除管道(就像按退格键一样)。您需要绕过退格键。

您可以通过将\bwow替换为\\bwow来绕开它。

#output
omg|\bwow