繁体   English   中英

Matcher.lookingAt()和find()之间有什么区别?

[英]What's the difference between Matcher.lookingAt() and find()?

我正在看Java正则表达式教程,标题几乎解释了自己。 看起来像Matcher.lookingAt()试图匹配整个String。 真的吗?

用于Matcher.lookingAt文件清楚地解释了区域lookingAt尝试匹配:

matches方法一样,此方法始终从区域的开头开始; 与该方法不同,它不需要匹配整个区域。

所以不, lookingAt不需要匹配整个字符串。 那么lookingAtfind之间的区别是什么? 来自Matcher Javadoc概述

  • matches方法尝试将整个输入序列与模式匹配。
  • lookingAt方法尝试将输入序列(从头开始)与模式匹配。
  • find方法扫描输入序列,寻找与模式匹配的下一个子序列。

lookingAt总是从头开始,但是find会扫描一个起始位置。

从另一个角度来看, matches具有固定的开始和结束, lookingAt具有固定的开始但是变量结束,并且find具有变量start和end。

lookingAt()总是从头开始检查,并在遇到匹配时返回true

find()可以找到多个匹配项,因为它存储了当前位置,就像迭代器一样。

关于来自http://docs.oracle.com/javase/7/docs/api/java/util/regex/Matcher.html#find%28%29的 find()

此方法从此匹配器区域的开头开始,或者,如果方法的先前调用成功并且匹配器尚未重置,则在第一个与上一个匹配不匹配的字符处开始。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM