gpt4 book ai didi

Python 正则表达式前瞻

转载 作者:太空宇宙 更新时间:2023-11-04 02:51:49 26 4
gpt4 key购买 nike

尝试创建一个正则表达式来查找一些字母组​​合后跟数字。像 ABC123,但它可能是 ABC 123,ABCID:123

reg = re.compile('(ABC(?:ID\:| )?\d*?)(?:$| |,|\t)',re.IGNORECASE)

这行得通,但是它自己也能找到 ABC..

有没有办法只有后面跟着数字才能找到它?

提前致谢

最佳答案

您将 *? 量词与 \d 一起使用,它匹配 0 或更多数字(尽可能少)。

你可以使用

r'ABC(?:ID:| )?\d+'

r'[a-z]+(?:ID:| )?\d+'

参见 regex demo

详细信息:

  • ABC - ABC 子字符串(或 [a-z]+ 以匹配 1 个或多个 ASCII 字母(注意编译模式时使用 re.I 标志将使 [a-z] 也能匹配大写 ASCII 字母))
  • (?:ID:| )? - ID: 或空格出现 1 次或 0 次
  • \d+ - 1+ 位(+ 是一个贪心量词,所以不需要用 (?: $| |,|\t) 组)。

请注意,如果您打算在 Python 2.x 中也匹配 Unicode 字母,则需要使用

re.findall(r'[^\W\d_]+(?:ID:| )?[0-9]+', s, flags=re.U|re.I)

re.U 标志将使 \W\d 类识别 Unicode。

关于Python 正则表达式前瞻,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43634759/

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