2016-09-06 93 views
0

我試圖檢測是否有使用正則表達式的字符串中有任何重複的字符。當我在一個在線正則表達式測試中測試模式和輸入時,它說find()應該是true。但它在我的程序中不起作用。 我使用的信息來自:regex to match a word with unique (non-repeating) characters正則表達式find()不正確;檢測字符串中的重複字符

發生了什麼事?我在Java中正確使用正則表達式嗎?

import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

public class Test { 
    public static void main(String[] args) { 
     Pattern pat = Pattern.compile("(.).*\1"); 
     String s = "1112"; 
     Matcher m = pat.matcher(s); 
     if (m.find()) System.out.println("Matches"); 
     else System.out.println("No Match"); 
    } 
} 

Regex tester screenshot

回答

1

反向引用需要轉義

Pattern pattern = Pattern.compile("(.).*\\1"); 
+0

好的,謝謝。新的正則表達式。它現在有效。 –