gpt4 book ai didi

排除字符的 Python 正则表达式

转载 作者:太空宇宙 更新时间:2023-11-04 08:25:07 35 4
gpt4 key购买 nike

有一个文本列表:

l=["SOMETHING","SOME_1","SOM_1"]

我正在寻找一个正则表达式模式来匹配第一个字符串,而不是第二个字符串:

  • 如果文本以 'SOM' 开头,返回 TRUE,可能还有一些其他字符,并且没有下划线
  • 因此,如果文本以“SOM”开头并包含至少一个下划线(在文本中的某处,下划线在哪里并不重要),则返回 FALSE

这是我尝试过的方法,但不起作用:

import re
l=["SOMETHING","SOME_1","SOM_1"]
find_pattern=re.compile("^SOM[A-Z]*[^_]")
for s in l:
print bool(find_pattern.match(s))

我期待:

True
False
False

但我认为乘法操作数不正确,因为我得到:

True
True
False

最佳答案

import re
l=["SOMETHING","SOME_1","SOM_1"]
find_pattern=re.compile("^SOM[^_]*$")
for s in l:
print bool(find_pattern.match(s))

打印预期结果:

True
False
False

在模式中,注意 $ anchor 的重要性。如果不存在,您将收到误报。

关于排除字符的 Python 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57996210/

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