正則表達式實現 判斷字符串沒有重複字符

/**
    * < 正則表達式實現 判斷字符串沒有重複字符 >
    * 「(.)」表示一個捕獲組,
    * 「\\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表示第三組
相關文章
相關標籤/搜索