【发布时间】:2023-01-26 20:05:34
【问题描述】:
假设我有一个字符串:
my_sentence = "I like not only apples, but also bananas."
我想使用 python regex 来匹配字符串,例如一种字母出现至少 3个 次在其中(无论在什么地方)。在这种情况下模式会是什么样子?
【问题讨论】:
-
为什么是正则表达式?为什么不只是简单的字符串操作,比如
my_sentence.count("a") >= 3
假设我有一个字符串:
my_sentence = "I like not only apples, but also bananas."
我想使用 python regex 来匹配字符串,例如一种字母出现至少 3个 次在其中(无论在什么地方)。在这种情况下模式会是什么样子?
【问题讨论】:
my_sentence.count("a") >= 3
利用直截了当正则表达式模式:
matched = bool(re.search(r'a.*a.*a.*', my_sentence))
a.*a.*a.* - 如果输入字符串至少包含 3 个 a 字符且中间有可选字符,则匹配
【讨论】:
a 之后的内容:)
你可以使用
import re
matches = re.findall(r'a', my_sentence) # ['a', 'a', 'a', 'a', 'a']
然后检查出现的次数
len(matches) > 3 # True
【讨论】:
试试这个模式:
^.*(a.*){3}$
您可以轻松地将其更改为任意数量的 a 或任何其他字符。
【讨论】: