Matcher.AppendReplacement Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ü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>
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
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.
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.