我知道这种匹配:
String reg="\\d{4}(-|/)\\d{2}\\1\\d{2}";
String str="2009-09-08";
String str2="2009/09/08";
String str3="2009/09-08";
System.out.println(str.matches(reg));
System.out.println(str2.matches(reg));
System.out.println(str3.matches(reg));
结果:
true
true
false我想知道可不可以这样匹配:
aa3AA
bb3BB
就是aa,AA一起出现,bbBB一起出现;
但不能匹配aa3BB
String reg="\\d{4}(-|/)\\d{2}\\1\\d{2}";
String str="2009-09-08";
String str2="2009/09/08";
String str3="2009/09-08";
System.out.println(str.matches(reg));
System.out.println(str2.matches(reg));
System.out.println(str3.matches(reg));
结果:
true
true
false我想知道可不可以这样匹配:
aa3AA
bb3BB
就是aa,AA一起出现,bbBB一起出现;
但不能匹配aa3BB
(-|/)表示-或/
\d{2}又二个数字
\1表示引用前面的第一个 括号却(-|\)
\d{2}又二个数字
所以整个正则是:4个数字|(或-)2个数字|(或-)2个数字
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args) {
String[] array = { "aa3AA", "aaAA", "bb3BB", "bbBB" };
Pattern pattern = Pattern.compile("(a{2}A{2})|(b{2}B{2})");
Matcher matcher = null;
for (String str : array) {
matcher = pattern.matcher(str);
if (matcher.find())
System.out.println("true");
else
System.out.println("false");
}
}
}
貌似有点恶心!