Freigeben über


Matcher.AppendReplacement Methode

Definition

Überlädt

AppendReplacement(StringBuffer, String)

Implementiert einen Nicht-Terminal-Anfüge- und -ersetzungsschritt.

AppendReplacement(StringBuilder, String)

Implementiert einen Nicht-Terminal-Anfüge- und -ersetzungsschritt.

AppendReplacement(StringBuffer, String)

Implementiert einen Nicht-Terminal-Anfüge- und -ersetzungsschritt.

[Android.Runtime.Register("appendReplacement", "(Ljava/lang/StringBuffer;Ljava/lang/String;)Ljava/util/regex/Matcher;", "")]
public Java.Util.Regex.Matcher AppendReplacement (Java.Lang.StringBuffer sb, string replacement);
[<Android.Runtime.Register("appendReplacement", "(Ljava/lang/StringBuffer;Ljava/lang/String;)Ljava/util/regex/Matcher;", "")>]
member this.AppendReplacement : Java.Lang.StringBuffer * string -> Java.Util.Regex.Matcher

Parameter

sb
StringBuffer

Der Zielzeichenfolgenpuffer

replacement
String

Die Ersatzzeichenfolge

Gibt zurück

Dieser Matcher

Attribute

Ausnahmen

wenn keine erfolgreiche Übereinstimmung erzielt wurde.

Hinweise

Implementiert einen Nicht-Terminal-Anfüge- und -ersetzungsschritt.

Diese Methode führt die folgenden Aktionen aus:

<ol>

<Li>

Sie liest Zeichen aus der Eingabesequenz, beginnend an der Anfügeposition, und fügt sie an den angegebenen Zeichenfolgenpuffer an. Es stoppt nach dem Lesen des letzten Zeichens vor der vorherigen Übereinstimmung, d. a. das Zeichen bei index #start() - 1.

</Li>

<Li>

Sie fügt die angegebene Ersetzungszeichenfolge an den Zeichenfolgenpuffer an.

</Li>

<Li>

Sie legt die Anfügeposition dieses Abgleichs auf den Index des letzten übereinstimmenden Zeichens plus eine, d. h. auf #end().

</Li>

</ol>

Die Ersetzungszeichenfolge kann Verweise auf untergeordnete Elemente enthalten, die während der vorherigen Übereinstimmung erfasst werden: Jedes Vorkommen von ${Name} oder$ g wird durch das Ergebnis der Auswertung der entsprechenden #group(String) group(name) oder #group(int) group(g) entsprechenden ersetzt. Bei $g wird die erste Zahl nach der $ Behandlung immer als Teil des Gruppenverweises behandelt. Nachfolgende Nummern werden in g aufgenommen, wenn sie einen Rechtsgruppenverweis bilden würden. Nur die Ziffern "0" bis "9" werden als mögliche Komponenten des Gruppenbezugs betrachtet. Wenn die zweite Gruppe beispielsweise mit der Zeichenfolge "foo"übereinstimmt, würde das Übergeben der Ersetzungszeichenfolge "$2bar" dazu führen "foobar" , dass sie an den Zeichenfolgenpuffer angefügt wird. Ein Dollarzeichen ($) kann als Literal in der Ersetzungszeichenfolge enthalten sein, indem er einem umgekehrten Schrägstrich (\$) vorangeht.

Beachten Sie, dass umgekehrte Schrägstriche (\) und Dollarzeichen ($) in der Ersetzungszeichenfolge dazu führen können, dass sich die Ergebnisse unterscheiden, als wenn sie als Literalersetzungszeichenfolge behandelt wurden. Dollarzeichen können wie oben beschrieben als Verweise auf erfasste Untersequences behandelt werden, und umgekehrte Schrägstriche werden verwendet, um Literalzeichen in der Ersetzungszeichenfolge zu escapen.

Diese Methode soll zusammen mit den #appendTail(StringBuffer) appendTail Methoden #find() find in einer Schleife verwendet werden. Der folgende Code schreibt z one dog two dogs in the yard . B. in den Standardausgabedatenstrom:

<Blockquote>

Pattern p = Pattern.compile("cat");
            Matcher m = p.matcher("one cat two cats in the yard");
            StringBuffer sb = new StringBuffer();
            while (m.find()) {
                m.appendReplacement(sb, "dog");
            }
            m.appendTail(sb);
            System.out.println(sb.toString());

</blockquote>

Java-Dokumentation für java.util.regex.Matcher.appendReplacement(java.lang.StringBuffer, java.lang.String).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für:

AppendReplacement(StringBuilder, String)

Implementiert einen Nicht-Terminal-Anfüge- und -ersetzungsschritt.

[Android.Runtime.Register("appendReplacement", "(Ljava/lang/StringBuilder;Ljava/lang/String;)Ljava/util/regex/Matcher;", "", ApiSince=34)]
public Java.Util.Regex.Matcher AppendReplacement (Java.Lang.StringBuilder sb, string replacement);
[<Android.Runtime.Register("appendReplacement", "(Ljava/lang/StringBuilder;Ljava/lang/String;)Ljava/util/regex/Matcher;", "", ApiSince=34)>]
member this.AppendReplacement : Java.Lang.StringBuilder * string -> Java.Util.Regex.Matcher

Parameter

sb
StringBuilder

Der Zielzeichenfolgen-Generator

replacement
String

Die Ersatzzeichenfolge

Gibt zurück

Dieser Matcher

Attribute

Hinweise

Implementiert einen Nicht-Terminal-Anfüge- und -ersetzungsschritt.

Diese Methode führt die folgenden Aktionen aus:

<ol>

<Li>

Sie liest Zeichen aus der Eingabesequenz, beginnend an der Anfügeposition, und fügt sie an den angegebenen Zeichenfolgen-Generator an. Es stoppt nach dem Lesen des letzten Zeichens vor der vorherigen Übereinstimmung, d. a. das Zeichen bei index #start() - 1.

</Li>

<Li>

Sie fügt die angegebene Ersetzungszeichenfolge an den Zeichenfolgen-Generator an.

</Li>

<Li>

Sie legt die Anfügeposition dieses Abgleichs auf den Index des letzten übereinstimmenden Zeichens plus eine, d. h. auf #end().

</Li>

</ol>

Die Ersetzungszeichenfolge kann Verweise auf Untersequences enthalten, die während der vorherigen Übereinstimmung erfasst werden: Jedes Vorkommen von $g wird durch das Ergebnis der Auswertung)(#group(int) group g ersetzt. Die erste Zahl nach dem $ Vorgang wird immer als Teil des Gruppenverweises behandelt. Nachfolgende Nummern werden in g aufgenommen, wenn sie einen Rechtsgruppenverweis bilden würden. Nur die Ziffern "0" bis "9" werden als mögliche Komponenten des Gruppenbezugs betrachtet. Wenn die zweite Gruppe beispielsweise mit der Zeichenfolge "foo"übereinstimmt, würde die Übergabe der Ersetzungszeichenfolge "$2bar" an "foobar" den Zeichenfolgen-Generator angefügt werden. Ein Dollarzeichen ($) kann als Literal in der Ersetzungszeichenfolge enthalten sein, indem er einem umgekehrten Schrägstrich (\$) vorangeht.

Beachten Sie, dass umgekehrte Schrägstriche (\) und Dollarzeichen ($) in der Ersetzungszeichenfolge dazu führen können, dass sich die Ergebnisse unterscheiden, als wenn sie als Literalersetzungszeichenfolge behandelt wurden. Dollarzeichen können wie oben beschrieben als Verweise auf erfasste Untersequences behandelt werden, und umgekehrte Schrägstriche werden verwendet, um Literalzeichen in der Ersetzungszeichenfolge zu escapen.

Diese Methode soll zusammen mit den #appendTail(StringBuilder) appendTail Methoden #find() find in einer Schleife verwendet werden. Der folgende Code schreibt z one dog two dogs in the yard . B. in den Standardausgabedatenstrom:

<Blockquote>

Pattern p = Pattern.compile("cat");
            Matcher m = p.matcher("one cat two cats in the yard");
            StringBuilder sb = new StringBuilder();
            while (m.find()) {
                m.appendReplacement(sb, "dog");
            }
            m.appendTail(sb);
            System.out.println(sb.toString());

</blockquote>

Hinzugefügt in 9.

Java-Dokumentation für java.util.regex.Matcher.appendReplacement(java.lang.StringBuilder, java.lang.String).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für: