有个需求:在编辑器上,当用户输入 "hello world world",或者”好的的“,明显是多输入了,这时候希望把这种情况给检查出来,使用正则表达式可以达到这个要求。
String p2 = "(\\s*|\\s*\\S+\\s+)([A-Za-z]+)\\s+\\2";
boolean isMatch = Pattern.matches(p, "hello world world");
但是这个表达式只可以匹配英文,如果直接加入中文范围的话:String p = "(\\s*|\\s*\\S+\\s+)([A-Za-z\u00C0-\u1FFF\u2800-\uFFFD]+)\\s+\\2",会出现中文匹配不成功的问题,原因是表达式要以空格间隔来识别两个单词或者是两个字,针对这个问题,就要用到另一个表达式了:
Pattern pattern = Pattern.compile("(.)\\1+");// 中文