我想知道在java中使用matcher
的行爲。Java使用正則表達式在字符串中查找值
我有一個模式,我編譯和通過匹配器的結果運行時,我不明白爲什麼缺少一個特定的值。
我的代碼:
String str = "star wars";
Pattern p = Pattern.compile("star war|Star War|Starwars|star wars|star wars|pirates of the caribbean|long strage trip|drone|snatched (2017)");
Matcher matcher = p.matcher(str);
while (matcher.find()) {
System.out.println("\nRegex : " matcher.group());
}
我被擊中了「星戰」,這是正確的,因爲它是在我的模式。
但是我並沒有將「星球大戰」當成一擊,我不明白爲什麼它是我的模式的一部分。
交替組中匹配「勝利」的第一個替代方案,其餘未被選中。一旦「星際戰爭」匹配,文本被消耗,就不會有更多的通行證。預計。你需要什麼行爲? –
有沒有辦法返回所有匹配? –
您將不得不單獨檢查每個模式,而不要將其作爲長鏈改變。 – NAMS