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