gpt4 book ai didi

java - 正则表达式提取范围内的数字

转载 作者:行者123 更新时间:2023-12-01 06:34:42 24 4
gpt4 key购买 nike

我想从给定的字符串中提取 1 到 19 之间的数字。

String n="1 21 16 17 9 8 22 20 10";
Pattern p=Pattern.compile("(1[0-9]|[0-9])");
Matcher m=p.matcher(n);
while(m.find())
System.out.println(n.substring(m.start(),m.end()));
}

我获得的输出:

 1
2
1
16
17
9
8
2
2
2
0
10

预期输出应忽略字符串中的 202122。现在,22 在显示中被拆分为 22,这不是预期的。

最佳答案

添加单词边界:

String n="1 21 16 17 9 8 22 20 10";
Pattern p=Pattern.compile("\\b(1[0-9]|[0-9])\\b");
Matcher m=p.matcher(n);
while(m.find())
System.out.println(n.substring(m.start(),m.end()));
}

参见demo

关于java - 正则表达式提取范围内的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30050071/

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