用正则表达式在字符串中找到两个相同字符
这是关于我之前在这里提问的内容。
我在那个问题中得到了一个解决方案,但这次我需要用正则表达式来处理这个特定的部分。
我需要一个正则表达式,用来查找并替换字符串中连续出现的两个相同的元音字母,比如“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)