在Python中匹配三个或更多相同字符

11 投票
2 回答
22507 浏览
提问于 2025-04-16 20:30

我正在尝试使用正则表达式来查找字符串中出现三次或更多次的相同字符。举个例子:

像'hello'就不符合条件,

而'ohhh'就符合。

我试过一些方法:

re.compile('(?!.*(.)\1{3,})^[a-zA-Z]*$') 
re.compile('(\w)\1{5,}')

但是都没有成功。

2 个回答

2

如果你想找同一个字符连续出现三次,可以这样做:

(\w)\1\1

如果你想在字符串的任何地方找到同一个字符出现三次,就需要在上面表达式的部分之间加一个点和一个星号,像这样:

(\w).*\1.*\1

这里的 .* 可以匹配任意数量的任意字符,所以这个表达式应该能匹配任何包含某个单词字符出现三次或更多次的字符串,中间可以有任意数量的字符。

希望这能帮到你。

22

你需要的正则表达式是 (\w)\1{2,}

在Python中,你可以这样写:r"(\w)\1{2,}"

撰写回答