2013-07-03 26 views
1

我正在處理現有的代碼,其中有一段代碼負責刪除符號,如果它屬於昨天。Java:在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}"); 

感謝

回答

3

它匹配一些月份後面跟着一個2位數字然後一個4位數字數字:Jan 14 2012

1

\\d指的是一個十進制數字(0-9以外行人的名義),大括號中的數字是期望的出現次數。

就你而言,{2}匹配月份的兩位數字,{4}匹配年份的四位數字。