首頁 >Java >java教程 >如何在 Java 中將所有正規表示式匹配項提取到數組中?

如何在 Java 中將所有正規表示式匹配項提取到數組中?

Linda Hamilton
Linda Hamilton原創
2024-12-08 19:04:141002瀏覽

How Can I Extract All Regex Matches into an Array in Java?

在Java 中使用正規表示式將字串匹配提取到數組中

在Java 中,無法直接獲取正規表示式匹配數組可能會讓您感到困惑。本指南解決了這項挑戰,提供了捕獲所有符合正規表示式的字串的解決方案。

檢索這些匹配項的關鍵在於利用匹配器,它迭代地定位出現的位置:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

List<String> allMatches = new ArrayList<>();
Matcher m = Pattern.compile("your regex expression here")
    .matcher(yourStringHere);
while (m.find()) {
   allMatches.add(m.group());
}

用匹配項填充allMatches 後,您可以將其轉換為數組,如果必要:

allMatches.toArray(new String[0]);

或者,您可以考慮使用MatchResult 來簡化配對操作。像 allMatches:

public static Iterable<MatchResult> allMatches(
      final Pattern p, final CharSequence input) {
  ...
}

這樣的輔助函數允許您迭代匹配,例如:

for (MatchResult match : allMatches(Pattern.compile("[abc]"), "abracadabra")) {
  System.out.println(match.group() + " at " + match.start());
}

提供輸出:

a at 0
b at 1
a at 3
c at 4
a at 5
a at 7
b at 8
a at 10

以上是如何在 Java 中將所有正規表示式匹配項提取到數組中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn