【发布时间】:2016-06-10 14:58:02
【问题描述】:
我如何理解正则表达式是否部分匹配其主题?
我试过了:
Pattern.compile("^\\d").matcher("01L").hitEnd()
还有这个:
Pattern.compile("^\\d").matcher("01L").matches()
它们都是假的,我想测试字符串是否以数字开头。
【问题讨论】:
标签: java regex string pattern-matching
我如何理解正则表达式是否部分匹配其主题?
我试过了:
Pattern.compile("^\\d").matcher("01L").hitEnd()
还有这个:
Pattern.compile("^\\d").matcher("01L").matches()
它们都是假的,我想测试字符串是否以数字开头。
【问题讨论】:
标签: java regex string pattern-matching
使用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
【讨论】: