gpt4 book ai didi

python - 当一行中有 ddd 时,正则表达式模式仅获取 3 位数值

转载 作者:行者123 更新时间:2023-12-04 08:16:14 26 4
gpt4 key购买 nike

如果一行中有 ddd,我试图只获取 3 位数字值,
这是我的输入字符串:

here we can also have 370
Hey I have 324 as best value today for 21ddd.
在上面的字符串中,如果一行中有 ddd,我想获得 3 位数值,这意味着我只想获得 324 作为我的输出。
下面是我尝试的模式:
price_1 = re.findall(r'\s*\d{3}(?!\s*\d{2}DDD)', line)
输出:
[' 370', ' 324']
但我需要的输出是:
['324']
谁能告诉我正确的模式来获得确切的输出?

最佳答案

如果 ddd 可以在 3 位数之前或之后:

^(?=.*ddd).*\b(\d{3})\b
解释
  • ^字符串开头
  • (?=.*ddd)积极前瞻断言 ddd
  • .*\b(\d{3})\b匹配捕获中的 3 位数字 第 1 组

  • Regex demo
    例如
    import re

    regex = r"^(?=.*ddd).*\b(\d{3})\b"
    s = ("here we can also have 370\n"
    "Hey I have 324 as best value today for 21ddd.")
    print(re.findall(regex, s, re.MULTILINE | re.IGNORECASE))
    输出
    ['324']

    关于python - 当一行中有 ddd 时,正则表达式模式仅获取 3 位数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65688400/

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