匹配器返回不匹配

PlayMa256

我在Regex101上测试了我的正则表达式,并捕获了所有组并匹配了我的字符串。但是现在当我尝试在Java上使用它时,它返回给我一个

java.lang.IllegalStateException:在第9行上找不到匹配项

   String subjectCode = "02 credits between ----";
   String regex1 = "^(\\d+).*credits between --+.*?$";       
   Pattern p1 = Pattern.compile(regex1);
   Matcher m;

  if(subjectCode.matches(regex1)){
    m = p1.matcher(regex1);
    m.find();
    [LINE 9]Integer subjectCredits = Integer.valueOf(m.group(1));
      System.out.println("Subject Credits: " + subjectCredits);
  }

那怎么可能,怎么了?

维克多·斯特里比尤(WiktorStribiżew)

这是一个修复程序和优化程序(感谢@ cricket_007):

String subjectCode = "02 credits between ----";
String regex1 = "(\\d+).*credits between --+.*";
Pattern p1 = Pattern.compile(regex1);
Matcher m = p1.matcher(subjectCode);
if (m.matches()) {
    Integer subjectCredits = Integer.valueOf(m.group(1));
    System.out.println("Subject Credits: " + subjectCredits);
}

您需要将输入字符串传递给matcher作为次要增强功能,您可以仅使用1 Matcher#matches,然后在匹配时访问捕获的组。正则表达式不是必需的^$因为matches()整个输入都应该与模式匹配。

IDEONE演示

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

匹配器不返回唯一结果

来自分类Dev

拆分返回不匹配

来自分类Dev

返回类型不匹配(或不匹配)

来自分类Dev

参数匹配器不验证参数

来自分类Dev

参数匹配器不验证参数

来自分类Dev

VSCode TypeScript 问题匹配器不工作

来自分类Dev

奇怪的AllOf hamcrest匹配器不匹配描述

来自分类Dev

Java匹配器返回额外的“。” 在输出中

来自分类Dev

Mockito anyBoolean()匹配器异常返回

来自分类Dev

匹配器未返回正确的组号

来自分类Dev

RegEx 匹配器总是返回 false

来自分类Dev

RankNTypes与返回类型不匹配

来自分类Dev

VB类型不匹配“返回”

来自分类Dev

grep还返回不匹配的行

来自分类Dev

RankNTypes与返回类型不匹配

来自分类Dev

如何返回不匹配的单词?

来自分类Dev

DB连接适配器“数据类型不匹配”

来自分类Dev

python返回字符串的匹配和不匹配模式

来自分类Dev

python返回字符串的匹配和不匹配模式

来自分类Dev

获取匹配的Xpath计数不返回匹配元素的数量

来自分类Dev

Java regex.pattern匹配器未返回所需结果

来自分类Dev

匹配器返回一些重复项

来自分类Dev

Elasticsearch Java API不返回匹配字段

来自分类Dev

python比较列表并返回不匹配的值

来自分类Dev

2 Checkout总是返回哈希不匹配

来自分类Dev

ParamConverterProvider方法返回类型不匹配

来自分类Dev

Excel VBA With语句返回类型不匹配

来自分类Dev

IDispatch Invoke()返回类型不匹配

来自分类Dev

案例类的scala返回案例不匹配