gpt4 book ai didi

python - 编译每行一个模式的正则表达式

转载 作者:行者123 更新时间:2023-11-30 23:02:22 24 4
gpt4 key购买 nike

我有多种模式需要检查。说 hellobye,但还会有更多,所以我选择使用 re.compile() 来存储它们,然后能够检查这个正则表达式:

import re

mypatt = re.compile(r'(hello|bye)', re.IGNORECASE)
url = ["bye bye", "hello how are you", "i am fine", "ok byeee"]
for u in url:
if mypatt.search(u):
print "yes --> %s" %(u)

运行此代码后,我得到所需的输出:

yes --> bye bye
yes --> hello how are you
yes --> ok byeee

但是,由于有多种模式,我想每行编写一个模式,例如:

mypatt = re.compile(r'(\
hello|\
bye\
)', re.IGNORECASE)

但是这不起作用,我不明白为什么。如何编写这样的语句,将每个模式写在不同的行中?

最佳答案

您正在创建一个在每行开头包含空格的模式。为了避免这种情况,可以:

  1. 使用textwrap.dedent ,它从多行字符串的每一行中删除常见的前导空格;或

  2. 添加re.VERBOSE (or re.X)标志忽略未转义的空白并允许添加内联注释。

关于python - 编译每行一个模式的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34532495/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com