正则表达式实现 判断字符串没有重复字符

/**
    * < 正则表达式实现 判断字符串没有重复字符 >
    * “(.)”表示一个捕获组,
    * “\\1”表示一个反向引用,也就是说“\\1”与“(.)”这两个位置的值能够相同,
    * 其余位置都是".*",表示匹配0~n个任意字符。
    * 总的来讲,这个正则表达式是匹配出现重复字符的字符串。
    */
public static boolean checkDifferent(String iniString) {
   return !iniString.matches(".*(.)(.*\\1).*");
  //return !iniString.matches(".*(.).*\\1.*");   
  //这样写更好,  开头中间结尾三个  .*  表明前中后均可以出现任意多个其余字符(0~n 个)
}
  • .*(.)(.*\\1).*    正则表达式含义解析:
    • .* 开头结尾出现重叠字符
    • (.)(.*\\1)
      • “\\1”表示一个反向引用
        • 咱们可使用\#(#是组号)来引用前面已定义的组
        • “abcxyzabc”,也可使用反向引用重写正则表达式,“"(abc)xyz\1"”,
          • \1表示第一组(abc)。\2表示第二组,\3表示第三组
相关文章
相关标签/搜索