Java正则表达式找不到数字

NoB*_*ugs 0 java regex

我正在尝试解析一些文本,但由于一些奇怪的原因,Java正则表达式不起作用.例如,我试过:

    Pattern p = Pattern.compile("[A-Z][0-9]*,[0-9]*");
    Matcher m = p.matcher("H3,4");
Run Code Online (Sandbox Code Playgroud)

当我试图得到数字m.group(1)和m.group(2)时,它只是给出了没有匹配的异常.我是否遗漏了Java正则表达式的工作原理?

Chr*_*ung 5

是.

  1. 您必须先实际呼叫matches()find()在匹配器上.
  2. 您的正则表达式实际上必须包含捕获组

例:

Pattern p = Pattern.compile("[A-Z](\\d*),(\\d*)");
matcher m = p.matcher("H3,4");
if (m.matches()) {
    // use m.group(1), m.group(2) here
}
Run Code Online (Sandbox Code Playgroud)