2016-06-10 60 views
1

如何理解正則表達式是否與其主題部分匹配?在Java中正則表達式的部分匹配

我嘗試這樣做:

Pattern.compile("^\\d").matcher("01L").hitEnd() 

這:

Pattern.compile("^\\d").matcher("01L").matches() 

,他們都是假的,我想測試字符串是否以數字開頭。

回答

5

使用matcher.find()方法:

boolean valid = Pattern.compile("^\\d").matcher("01L").find(); //true 

PS:如果你在一個循環或多次使用find這是更好地做:

Pattern p = Pattern.compile("^\\d"); // outside loop 
boolean valid = p.matcher("01L").find(); // repeat calls 

你得到:

  • matches嘗試將整個輸入與圖案匹配,因此返回false
  • hitEnd回報true如果輸入的結尾是由搜索引擎由此匹配執行的最後匹配操作擊中,因爲它沒有你false