gpt4 book ai didi

regex - 包含至少两个数字/字母的序列的 Python 正则表达式

转载 作者:行者123 更新时间:2023-12-05 09:01:11 26 4
gpt4 key购买 nike

使用 Python 模块 re,我想检测文本中至少包含两个字母 (A-Z) 和至少两个数字 (0-9) 的序列,例如,来自文本

“N03FZ467 其他文字 N03671”

恰好应该匹配子字符串“N03FZ467”。

到目前为止我得到的最好的是

(?=[A-Z]*\d)[A-Z0-9]{4,}

检测长度至少为 4 且仅包含字母 A-Z 和数字 0-9 以及至少一位数字和一个字母的序列。我怎样才能确保我分别得到至少两个?

最佳答案

  1. 如果要匹配完整单词,请从 word boundaries 开始匹配\b
  2. 通过 lookahead 检查第一个条件(两个上) : (?=(?:\d*[A-Z]){2})
  3. 如果成功,匹配第二个要求,两个digits : (?:[A-Z]*\d){2}
  4. 最后匹配所有剩余的 [A-Z\d]* 直到另一个 \b

综合:

\b(?=(?:\d*[A-Z]){2})(?:[A-Z]*\d){2}[A-Z\d]*\b

See this demo at regex101Python demo at tio.run

请注意,前瞻是零长度断言,它不消耗字符。如果您没有指定起点,例如 \b,则将在任何效率较低的地方使用先行。
进一步说明,最小长度至少为4个即可满足要求。

关于regex - 包含至少两个数字/字母的序列的 Python 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73915958/

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