我有一个字符串 - 例如,“Hello Worrld”。注意“r”字母重复两次。
我希望识别连续发生的字母(两次或多次)并仅保留其中一种字母。也就是说,我希望用一个“r”来获得“Hello World”。
Golang似乎没有前瞻性的正则表达式。
我尝试使用以下正则表达式来识别连续重复的字母 -
r := regexp.Compile(`(.)\1`)
但它选择了两个字母的出现 - 我只希望选择其中一个。
答案 0 :(得分:5)
您可以使用pcre绑定,但是如果您只想删除重复字母,可以使用strings.Map
,例如:
func stripDups(s string) string {
var last rune
return strings.Map(func(r rune) rune {
if r != last {
last = r
return r
}
return -1
}, s)
}