Java 什么';Matcher.lookingAt()和find()之间的区别是什么?
我正在看Java正则表达式教程,这个标题很好地解释了它本身。看起来Matcher.lookingAt()正在尝试匹配整个字符串。这是真的吗?Java 什么';Matcher.lookingAt()和find()之间的区别是什么?,java,regex,Java,Regex,我正在看Java正则表达式教程,这个标题很好地解释了它本身。看起来Matcher.lookingAt()正在尝试匹配整个字符串。这是真的吗?lookingAt()总是从一开始就开始检查,并在遇到匹配时返回true find()可以找到多个匹配项,因为它存储其当前位置,很像迭代器 关于find()from: 此方法从该匹配器区域的开始处开始,或者,如果先前成功调用了该方法并且此后未重置匹配器,则从第一个未与先前匹配匹配的字符开始 这清楚地解释了lookingAt尝试匹配的区域: 与匹配方法一样,此
lookingAt()
总是从一开始就开始检查,并在遇到匹配时返回true
find()
可以找到多个匹配项,因为它存储其当前位置,很像迭代器
关于find()
from:
此方法从该匹配器区域的开始处开始,或者,如果先前成功调用了该方法并且此后未重置匹配器,则从第一个未与先前匹配匹配的字符开始
这清楚地解释了lookingAt
尝试匹配的区域:
与匹配
方法一样,此方法始终从区域的开头开始;与该方法不同,它不需要匹配整个区域
所以不,lookingAt
不需要匹配整个字符串。那么lookingAt
和find
之间有什么区别呢?从:
方法尝试根据模式匹配整个输入序列matches
方法尝试将输入序列与模式匹配,从开头开始李>lookingAt
方法扫描输入序列,寻找与模式匹配的下一个子序列李>find
lookingAt
始终从开头开始,但find
将扫描起始位置
从另一个角度看,
matches
有一个固定的开始和结束,lookingAt
有一个固定的开始但有一个可变的结束,find
有一个可变的开始和结束。谢谢,细节很好!)此外,使用本教程中的匹配和查找方法也涉及此主题: