gpt4 book ai didi

java - 在java/android中获取带有匹配器的字符串列表

转载 作者:行者123 更新时间:2023-12-02 04:45:33 25 4
gpt4 key购买 nike

我有一个像

这样的字符串
number +919999999990  time at:07:42:45 on 10.04.2014, number
+919999999991 time at:08:42:45 on 11.05.2014, number +919999999992 time at:075:42:45 on 05.03.2014 , number +9199999999913 ,time at:27:40:45 on 09.04.2015.

我必须检索所有电话号码、日期和时间。我打算使用模式和匹配器。

我的代码是

String extra1="number +919999999990  time at:07:42:45 on 10.04.2014, number +919999999991 time at:08:42:45 on 11.05.2014, number +919999999992 time at:075:42:45 on 05.03.2014 , number +9199999999913 ,time at:27:40:45 on 09.04.2015.";
Pattern pattern = Pattern.compile("\\+\\d{12}");
Matcher matcher = pattern.matcher(extra1);
System.out.println("matcher.groupCount() "+matcher.groupCount());
if (matcher.find()) {
while(matcher.find()) {
System.out.println(matcher.group());
}
} else {
System.out.println("Not Found");
}

根据thisthis它应该打印所有电话号码。但我只得到第一个电话号码。

任何人都可以提出解决方案吗...

最佳答案

如果您删除将消耗第一个数字的“if (matcher...)”语句,它对我来说效果很好:

    String extra1 = "number +919999999990  time at:07:42:45 on 10.04.2014, number +919999999991 time at:08:42:45 on 11.05.2014, number +919999999992 time at:075:42:45 on 05.03.2014 , number +9199999999913 ,time at:27:40:45 on 09.04.2015.";
Pattern pattern = Pattern.compile("\\+\\d{12}");
Matcher matcher = pattern.matcher(extra1);
System.out.println("matcher.groupCount() " + matcher.groupCount());
while (matcher.find()) {
System.out.println(matcher.group());
}

输出:

matcher.groupCount() 0
+919999999990
+919999999991
+919999999992
+919999999991

关于java - 在java/android中获取带有匹配器的字符串列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29691494/

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