数字正则表达式不匹配

克里斯·朗|

我不断收到我不应该得到的错误,我也不是正则表达式专家,但它应该是如此简单。我查看了很多次,无法弄清为什么它不起作用。我也搜索了一堆类似的东西,但找不到任何有相同问题的人。

这是我得到的错误:

Exception in thread "main" java.lang.IllegalStateException: No match found
    at java.util.regex.Matcher.group(Matcher.java:485)
    at DailyData.importUsers(DailyData.java:456)
    at DailyData.main(DailyData.java:40)

这是我的代码,通过调试,我发现了给出错误的最后一行:

Pattern memberSincePattern = Pattern.compile("\\W*(\\d+):(\\d+):(\\d+)\\W*(\\d+)/(\\d+)/(\\d+)");
Matcher memberSinceMatcher = memberSincePattern.matcher("12:12:12 12/12/2012");
String msGroupOne = memberSinceMatcher.group(1);

我在Ubuntu 14.04 LTS上使用eclipse。我已经导入了适当的库,并尝试了\ d {1,2}作为数字,并摆脱了前导\ W *。我希望它能够为每个组抓住1位或2位数字。我也没有语法错误或警告。

ccjmne

如例外所示,您需要先找到正则表达式匹配的内容然后再找到匹配的组。

例如,您可以使用Matcher#matches,如下所示:

Pattern memberSincePattern = Pattern.compile("\\W*(\\d+):(\\d+):(\\d+)\\W*(\\d+)/(\\d+)/(\\d+)");
Matcher memberSinceMatcher = memberSincePattern.matcher("12:12:12 12/12/2012");

if(memberSinceMatcher.matches()) {
    String msGroupOne = memberSinceMatcher.group(1);
}

这是的javadoc条目Matcher#matches


作为一个方面说明,我想指出的是,如果你想匹配的只有原来的子序列String,至少一次,你应该使用Matcher#find代替Matcher#matches可能在while循环中:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

正则表达式匹配数字或不匹配

来自分类Dev

正则表达式不匹配数字

来自分类Dev

正则表达式或不匹配

来自分类Dev

正则表达式不匹配

来自分类Dev

正则表达式不匹配

来自分类Dev

正则表达式不匹配

来自分类Dev

正则表达式不匹配

来自分类Dev

正则表达式不匹配

来自分类Dev

正则表达式不匹配

来自分类Dev

表达式不匹配正则表达式

来自分类Dev

正则表达式-仅匹配unicode字母而不匹配数字

来自分类Dev

正则表达式-仅匹配unicode字母而不匹配数字

来自分类Dev

如何使用正则表达式匹配数字而不匹配字符串?

来自分类Dev

匹配单词的正则表达式,或者不匹配

来自分类Dev

Python正则表达式搜索,匹配不匹配

来自分类Dev

完全匹配的正则表达式不部分匹配

来自分类Dev

正则表达式匹配不匹配的内容

来自分类Dev

正则表达式匹配任何字符或不匹配?

来自分类Dev

完全匹配的正则表达式不部分匹配

来自分类Dev

C ++正则表达式匹配,不匹配

来自分类Dev

正则表达式匹配(如果不...返回不...)

来自分类Dev

正则表达式在特定位置不匹配某些数字

来自分类Dev

bash脚本中的正则表达式与数字模式不匹配

来自分类Dev

为什么我的正则表达式不匹配以下数字字符串?

来自分类Dev

JavaScript正则表达式不匹配数字,空格和所选符号

来自分类Dev

使用正则表达式不匹配数字之间的句点

来自分类Dev

正则表达式不匹配字符串C#中的连续数字

来自分类Dev

正则表达式不匹配连字符后的数字

来自分类Dev

正则表达式与PHP中的正则表达式不匹配