我有一个由我的CS2讲师给出的java正则表达式,它检查一个单词是否重复:
\\b(\\w+)\\s+\\1\\b
如何修改此项以检查某个单词是否重复两次,如" hello hello hello"或者"你好世界你好你好"
如果可能的话,我只是想指出正确的方向,而不是一个彻头彻尾的解决方案(毕竟,我需要学习这个)。我认为我的问题是我不能很好地理解单词边界。
答案 0 :(得分:1)
首先,您需要弄清楚您给出的表达式的解剖结构。它描述了一个字符串,捕获一个非空的单词字符序列(\\w+)
,从一个单词边界开始,后跟一个非空的空格序列\\s+
,接下来是捕获组的内容,不是更长词的一部分(这是\\b
在表达式结尾处所做的事情。)
接下来,您需要构建一个正则表达式来描述"一个可能为空的单词字符和空格序列"。那将是(?:\\w|\\s)*
。
现在你已经准备好表达你的意思了。你需要这些部分:
答案 1 :(得分:0)
好吧,因为你似乎想自己学习这个,我会给你一个有用的Oracle Link.其次我建议你注意你到底想要达到的目标,一个三个相同词的模式。希望有帮助并且不太明显。如果您需要更多帮助,请发表评论。
编辑:抱歉,我忘记了第二个链接here.此页面也很有帮助。