java正则表达式 重复_java中的正则表达式,用于查找重复的连续单词

我把它看作是在字符串中找到重复单词的答案.但是当我使用它时,它认为这和它是相同的并删除它.

正则表达式

"\\b(\\w+)\\b\\s+\\1"

知道为什么会这样吗?

这是我用于重复删除的代码

public static String RemoveDuplicateWords(String input)

{

String originalText = input;

String output = "";

Pattern p = Pattern.compile("\b(\w+)\b\s+\b\1\b", Pattern.MULTILINE+Pattern.CASE_INSENSITIVE);

//Pattern p = Pattern.compile("\\b(\\w+)\\b\\s+\\1", Pattern.MULTILINE+Pattern.CASE_INSENSITIVE);

Matcher m = p.matcher(input);

if (!m.find())

output = "No duplicates found, no changes made to data";

else

{

while (m.find())

{

if (output == "")

output = input.replaceFirst(m.group(), m.group(1));

else

output = output.replaceAll(m.group(), m.group(1));

}

input = output;

m = p.matcher(input);

while (m.find())

{

output = "";

if (output == "")

output = input.replaceAll(m.group(), m.group(1));

else

output = output.replaceAll(m.group(), m.group(1));

}

}

return output;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值