下面是我的代码:

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

最佳答案

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

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

#output
omg|\bwow

关于python - 正则表达式从列表构建行为异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53138101/

10-12 07:31