2
我试图从以下字符串中的信息:为什么我的正则表达式匹配但不捕获一个组?
//YES: We got a match.
我想提取定义两组
信息- 一切
//
和 - 之间
:
所有后面:
休息
该模式正确匹配,但我c注释提取组。
String example = "//YES: We got a match.";
String COMMENT_PATTERN = "//(\\w+):(.*)";
Pattern pattern = Pattern.compile(COMMENT_PATTERN);
example.matches(COMMENT_PATTERN); // true
Matcher matcher = pattern.matcher(example);
matcher.group(1); // raises an exception
我命名组试了一下,以及:
String COMMENT_PATTERN = "//(?<init>\\w+):(?<rest>.*)";
...
matcher.group("init"); // raises an exception
为什么我的模式不能提取指定的群体?
首先,你需要把'+'** **中的匹配组,否则你会得到在组1中匹配的最后一个字符'(\\ w +)'。 – HamZa
注意修复第3行中的语法错误?这是简短的,由其他人编辑;) –
什么@HamZa的意思是删除组后,并把它放在里面。我修好了它。 –