[英]Java : use of Curly braces inside Pattern.compile
我正在研究一个现有代码,其中有这段代码,如果它属于昨天,则负责删除符号。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.log4j.Logger;
public class Test {
public static void main(String args[]) {
try {
String currentSymbol = "TEST JUL 20 2013";
Pattern datePattern = Pattern
.compile("(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC) \\d{2} \\d{4}");
Matcher dateMatcher = datePattern.matcher(currentSymbol);
if (dateMatcher.find()) {
System.out.println("Inside dateMatcher.find");
} else {
System.out.println("Not Inside dateMatcher.find");
}
} catch (Exception t) {
t.printStackTrace();
}
}
}
这段代码可以正常工作,但是有人可以告诉我此行\\\\d{2} \\\\d{4}
什么需求,这是什么意思
Pattern datePattern = Pattern
.compile("(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC) \\d{2} \\d{4}");
提前致谢
查看http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html
\\\\d
是字符类“十进制”-因此从0到9的任何数字。 {2}
指定“先前的表达式必须正好出现2次” 所以:
\\\\d{2}
匹配任何2位数字 \\\\d{4}
匹配任何4位数字 它与某个月份匹配,后跟2位数字然后是4位数字: Jan 14 2012
\\\\d
表示十进制数字(用外行术语来说是0-9),花括号中的数字是预期的确切出现次数。
在您的情况下,{2}匹配月份的两位数字,{4}匹配年份的四位数字。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.