Erstellen von Arrays aus Regex-Übereinstimmungen
In Java werden Regex-Übereinstimmungen normalerweise als boolesche Werte überprüft, die angeben, ob ein Muster mit einer Zeichenfolge übereinstimmt. Es ist jedoch möglich, die passenden Zeichenfolgen aus einem regulären Ausdruck in ein Array zu extrahieren.
Um dies zu erreichen, können Sie einen Matcher verwenden:
import java.util.regex.Matcher; import java.util.regex.Pattern; ... List<String> allMatches = new ArrayList<>(); Matcher m = Pattern.compile("your regular expression here").matcher(yourStringHere); while (m.find()) { allMatches.add(m.group()); }
Der obige Code verwendet ein Muster, um Erstellen Sie eine Matcher-Instanz, die dann zur iterativen Identifizierung von Übereinstimmungen verwendet wird. Jede Übereinstimmung wird einer Liste hinzugefügt, und Sie können die Liste wie folgt in ein Array konvertieren:
allMatches.toArray(new String[0]);
Alternativ können Sie einen benutzerdefinierten Iterator erstellen, um eine verzögerte Iteration über Übereinstimmungen zu ermöglichen:
public static Iterable<MatchResult> allMatches( final Pattern p, final CharSequence input) { return new Iterable<MatchResult>() { ... }; }
Mit diesem Iterator können Sie Übereinstimmungen durchlaufen, ohne alle möglichen Übereinstimmungen sofort finden zu müssen.
Wie im Code gezeigt Snippet:
for (MatchResult match : allMatches(Pattern.compile("[abc]"), "abracadabra")) { System.out.println(match.group() + " at " + match.start()); }
Dies wird Folgendes ausgeben:
a at 0 b at 1 a at 3 c at 4 a at 5 a at 7 b at 8 a at 10
Demonstriert, wie mithilfe der MatchResult-Implementierung iterativ auf Übereinstimmungen zugegriffen werden kann.
Das obige ist der detaillierte Inhalt vonWie kann ich in Java ein Array von Zeichenfolgen aus Regex-Übereinstimmungen erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!