【问题标题】:Python regex to match string with specified count of given phrasePython 正则表达式匹配字符串与给定短语的指定计数
【发布时间】:2023-01-26 20:05:34
【问题描述】:

假设我有一个字符串:

my_sentence = "I like not only apples, but also bananas."

我想使用 python regex 来匹配字符串,例如一种字母出现至少 3个 在其中(无论在什么地方)。在这种情况下模式会是什么样子?

【问题讨论】:

  • 为什么是正则表达式?为什么不只是简单的字符串操作,比如my_sentence.count("a") >= 3

标签: python regex match


【解决方案1】:

利用直截了当正则表达式模式:

matched = bool(re.search(r'a.*a.*a.*', my_sentence))

  • a.*a.*a.* - 如果输入字符串至少包含 3 个 a 字符且中间有可选字符,则匹配

【讨论】:

  • 您也可以删除最后一个 .*,因为我们不关心最后一个 a 之后的内容:)
【解决方案2】:

你可以使用

import re
matches = re.findall(r'a', my_sentence)  # ['a', 'a', 'a', 'a', 'a']

然后检查出现的次数

len(matches) > 3  # True

【讨论】:

    【解决方案3】:

    试试这个模式:

    ^.*(a.*){3}$
    

    您可以轻松地将其更改为任意数量的 a 或任何其他字符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-07
      • 2013-10-18
      • 1970-01-01
      • 2021-10-09
      相关资源
      最近更新 更多