gpt4 book ai didi

java - 请解释此正则表达式的输出(以正面前瞻开头)

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:17:09 27 4
gpt4 key购买 nike

Pattern p = Pattern.compile("(?=[1-9][0-9]{2})[0-9]*[05]");
Matcher m = p.matcher("101");
while(m.find()){
System.out.println(m.start()+":"+ m.end()+ m.group());
}

输出------>> 0:210

请告诉我为什么我在此处将 m.group() 的输出设为 10。据我所知,m.group() 应该什么都不返回,因为 [05] 什么都不匹配。

最佳答案

您的模式 (?=[1-9][0-9]{2})[0-9]*[05] 由两部分组成:

(?=[1-9][0-9]{2})

[0-9]*[05]

第一部分是一个零宽度正前瞻,它搜索长度为 3 的数字,第一个不能为 0。这与您的 101 匹配。< br/>第二部分搜索任意数量的数字,然后搜索 0 或 5。这与 101 的前 2 个字符匹配,因此结果为 10

参见 Java - Pattern获取更多信息。

关于java - 请解释此正则表达式的输出(以正面前瞻开头),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33804811/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com