Java中正则表达式的部分匹配

Tob*_*bia 1 java regex string pattern-matching

如果正则表达式与其主题部分匹配,我如何理解?

我试过这个:

Pattern.compile("^\\d").matcher("01L").hitEnd()
Run Code Online (Sandbox Code Playgroud)

还有这个:

Pattern.compile("^\\d").matcher("01L").matches()
Run Code Online (Sandbox Code Playgroud)

并且它们都是假的,我想测试字符串是否以数字开头.

anu*_*ava 5

使用matcher.find()方法:

boolean valid = Pattern.compile("^\\d").matcher("01L").find(); //true
Run Code Online (Sandbox Code Playgroud)

PS:如果您find在循环中使用或多次使用,最好这样做:

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

你得到:

  • matches尝试将整个输入与模式匹配,因此返回false.
  • hitEnd返回true如果输入的结尾是由搜索引擎由此匹配执行的最后匹配操作击中,因为它没有你false