小编Eat*_*haq的帖子

用于仅查找字符串中的单个字母并忽略连续双字母的正则表达式

我已经搜索了很多,但我找不到一个只能选择单个字母并将其加倍的正则表达式,而那些已经是双倍的字母应该保持不变。

我试过

String str = "yahoo";
str = str.replaceAll("(\\w)\\1+", "$0$0");
Run Code Online (Sandbox Code Playgroud)

但由于这(\\w)\\1+选择了所有双元素,因此我的输出变为yahoooo. 我尝试向其添加否定!(\\w)\\1+,但没有成功,输出变得与输入相同。我努力了

str.replaceAll(".", "$0$0");
Run Code Online (Sandbox Code Playgroud)

但这会使每个字符加倍,包括已经加倍的字符。

请帮助编写一个regex可以用双字符替换所有单字符的文件,而双字符应保持不变。

例子

abc -> aabbcc
yahoo -> yyaahhoo (o should remain untouched)
opinion -> ooppiinniioonn
aaaaaabc -> aaaaaabbcc
Run Code Online (Sandbox Code Playgroud)

java regex string duplicates

6
推荐指数
1
解决办法
153
查看次数

标签 统计

duplicates ×1

java ×1

regex ×1

string ×1