正则表达式查找方法

Shu*_*agi 2 java regex

这是我"ab"在给定字符串中查找模式的代码。

import java.util.regex.*;
public class RegExp
{
    public static void main(String[] args)
    {
        Pattern p = Pattern.compile("ab");
        Matcher m = p.matcher("ababbaba");
        while(m.find())
        {
            System.out.println(m.start());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但我无法理解find()and 的内部工作start()

fre*_*dev 5

find方法扫描输入序列,寻找与模式匹配的下一个子序列,并返回boolean指示失败成功的 。

内部find方法调用该search方法(访问控制默认),以便启动搜索以Pattern在给定范围内查找 a 。在每次匹配时,界限将增加,直到找到所有匹配。

Matcher类的后面是一个状态机,它将保存比赛的状态。

另一方面,start方法返回int最新匹配捕获的子序列的起始索引。

如果你想真正去深入我建议审查源代码Matcher 类。