python 正则表达式只匹配特定的词,而不是子集

标签 python regex

我正在尝试在 python 中使用正则表达式搜索特定单词。

lst2 = ['Azmat', 'AZ', 'azim', 'Zard', 'Zardari']

pattern = re.compile(r"\bAZ|Zard\b", re.I)

for item in lst2:
    if re.search(pattern, item):
        print item

此代码产生:

Azmat
AZ
azim
Zard

为什么不只匹配“AZ”和“Zard”?

最佳答案

这是因为您的正则表达式匹配:

\bAZ

Zard\b

使用非捕获组来限制 | 运算符的“影响”:

\b(?:AZ|Zard)\b

这样,它显示为:\b,然后是 AZZard,最后是 \b

关于python 正则表达式只匹配特定的词,而不是子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21588008/

相关文章:

python - 导入单个函数

Python 使用 TLSv1.2 请求模块,即使我指定的是 TLSv1.1

regex - 有人可以向我解释占有量词吗? (常用表达)

Python 正则表达式多重搜索

c# - 删除除空格外的所有非数字字符

python - 如何禁用pyqtgraph的默认上下文菜单?

python 3.x : move to next line

java - 问号正则表达式 (Java)

python - 无论如何强制 PyCharm 总是使用绝对导入?

javascript - 使用正则表达式跳过括号 [] 拆分字符串