我目前正在尝试在Java中创建一个regex,如果输入字符串中存在任何重复的字符,则返回true,否则返回false,并使用尽可能短的regex (用于代码高尔夫挑战)。我不太擅长正则表达式,但我认为这会很有用:
(.)\\1
其中,(.)
是任意字符,\\1
是对正则表达式第一部分中找到的匹配项的引用。
但是,如果我尝试输入"1223
",它不能工作:
public static void main(String[] a){
System.out.println(java.util.regex.Pattern.matches("(.)\\1", "1223"));
}
这返回false,而由于22
,我期望返回true。
有谁知道如何使用java.util.regex.Pattern.matches
或更短的代码来修复正则表达式,因为它是代码高尔夫?;)
发布于 2016-04-06 20:58:52
Pattern.matches(regex, sequence)
返回整个字符串是否与regex
对应,而不是返回匹配的子字符串是否存在。
对于你正在尝试做的事情,你可以做以下两件事之一:
使用正则表达式代替
Matcher
类:Matcher m=https://stackoverflow.com/questions/36451800
复制相似问题