我如何理解正则表达式是否与其主题部分匹配?
我试过了:
Pattern.compile("^\\d").matcher("01L").hitEnd()
和此:
Pattern.compile("^\\d").matcher("01L").matches()
并且它们都是假的,我想测试字符串是否以数字开头。
答案 0 :(得分: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