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的意思是刪除組後,並把它放在裏面。我修好了它。 –