gpt4 book ai didi

java - 正则表达式模式匹配java

转载 作者:行者123 更新时间:2023-12-02 06:42:50 25 4
gpt4 key购买 nike

我有 2 个进行模式匹配的 java 程序,

程序 - 1

    public class test {

public static void main(String[] args) {
Pattern p = Pattern.compile("\\d*");
Matcher m = p.matcher("ab34ef");
boolean b = false;
while (b = m.find()){
System.out.println(m.start());
System.out.println(m.group());
}
}
}

输出:

    0
1
2
34
4
5
6

程序 - 2

public class test {

public static void main(String[] args) {
Pattern p = Pattern.compile("Dog");
Matcher m = p.matcher("This is a Dog and Dog name is Tommy");
boolean b = false;
while (b = m.find()){
System.out.println(m.start());
System.out.println(m.group());
}
}
}

输出-

    10
Dog
18
Dog

有人可以解释正则表达式在这两种情况下如何工作吗?为什么在program-1中匹配从字节0开始......而在program-2中匹配在整个字符串上匹配?

最佳答案

\\d* 表示包含0 个或更多 个数字的字符串

您得到0长(空)数字字符串的结果...

您应该尝试\\d+来查找长度至少为1的数字字符串

推荐阅读

关于java - 正则表达式模式匹配java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18961343/

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