用正则表达式在字符串中找到两个相同字符

2 投票
4 回答
2923 浏览
提问于 2025-04-15 16:48

这是关于我之前在这里提问的内容。

我在那个问题中得到了一个解决方案,但这次我需要用正则表达式来处理这个特定的部分。

我需要一个正则表达式,用来查找并替换字符串中连续出现的两个相同的元音字母,比如“took”中的“oo”或“bees”中的“ee”,然后把它们替换成其中一个字母加上一个:

以下是一些预期的效果:

"took" 应该变成 "to:k"

"waaeek" 应该变成 "wa:e:k"

"raaag" 应该变成 "ra:ag"

谢谢你的帮助。

4 个回答

0

你需要在搜索表达式中使用一个回溯引用。可以试试这样的写法:([a-z])+\1(或者如果只是想找两个相同的字母,可以用([a-z])\1)。

1

搜索 ([aeiou])\1 并用 \1: 替换它。

我对Python不太了解,但你应该可以让这个正则表达式不区分大小写,并且全局匹配,像这样 /([aeiou])\1/gi

7

试试这个:

re.sub(r'([aeiou])\1', r'\1:', str)

撰写回答