Skip to main content
 首页 » 编程设计

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

2024年09月03日39artech

下面是我的代码:

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 。这仅在访问 self 时发生在类内部。

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

编辑:

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

请您参考如下方法:

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

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

#output 
omg|\bwow