2016-09-06 52 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

好的,谢谢。新的正则表达式。它现在有效。 –