【问题标题】:Regular expression pattern matching with required conditions与所需条件匹配的正则表达式模式
【发布时间】:2020-11-09 14:41:15
【问题描述】:

如何编写与以下模式匹配的正则表达式模式:

  1. 0/2/a/Q开头。
  2. 必须以S/d结尾。
  3. 必须至少包含两个0s。
  4. 仅包含字母数字字符和唯一的特殊字符$(美元符号)。

我已经尝试过了,但是我的代码不满足两个0s 条件:

import re


data = '''
    Hello everyone, good evening, I am kanchon and I am from RUET. Now I am writing my assignment for automata code and trying to solve out this problem.
    Some dummy content line is following:
    022jdshjgh$dgdg Quite$stupid this is enough
'''
date_pattern = re.compile(r'[02aQ][a-zA-Z0-9$]+[Sd]')
dates = date_pattern.findall(data)

print(dates)

【问题讨论】:

  • 你试过什么?你能举一些输入和输出的例子吗?
  • 抱歉,已编辑....但是如何满足“必须包含至少两个 0”的代码?
  • 嗯,你在下面有一个答案......你看到了吗?请阅读What should I do when someone answers my question?
  • 感谢 Tomerikoo 先生,我是 stackoverflow 的新手......但我无法通过下面给出的答案解决解决方案
  • 要在其他文本中匹配,您可以使用(?:^|\s)(?=.*0.*0)[02aQ][a-zA-Z0-9$]+[Sd](?=\s|$)

标签: python python-re


【解决方案1】:

获取您的描述并添加前瞻:

^(?=.*?0.*0)[02aQ][a-zA-Z0-9$]+[Sd]$

Demo

这适用于单行上的单个字符串。

对于文本中的目标,您可以添加一些内容来查找独立的单词。我将把它作为消费税留给 OP。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多