Matcher.AppendReplacement Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Overload
AppendReplacement(StringBuffer, String) |
Implementa un passaggio di accodamento e sostituzione non terminale. |
AppendReplacement(StringBuilder, String) |
Implementa un passaggio di accodamento e sostituzione non terminale. |
AppendReplacement(StringBuffer, String)
Implementa un passaggio di accodamento e sostituzione non terminale.
[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
Parametri
- sb
- StringBuffer
Buffer della stringa di destinazione
- replacement
- String
Stringa da usare per la sostituzione
Restituisce
Questo matcher
- Attributi
Eccezioni
se non è stata eseguita alcuna corrispondenza con esito positivo.
Commenti
Implementa un passaggio di accodamento e sostituzione non terminale.
Questo metodo esegue le azioni seguenti:
<olo>
<li>
Legge i caratteri dalla sequenza di input, a partire dalla posizione di accodamento e li aggiunge al buffer di stringa specificato. Si interrompe dopo aver letto l'ultimo carattere precedente alla corrispondenza precedente, ovvero il carattere in corrispondenza dell'indice #start()
-
1
.
</li>
<li>
Aggiunge la stringa di sostituzione specificata al buffer di stringa.
</li>
<li>
Imposta la posizione di accodamento di questo matcher sull'indice dell'ultimo carattere corrispondente, più uno, ovvero su #end()
.
</li>
</olo>
La stringa di sostituzione può contenere riferimenti alle sottosequenze acquisite durante la corrispondenza precedente: ogni occorrenza di ${
nome}
o $
g verrà sostituita rispettivamente dal risultato della valutazione dell'oggetto corrispondente #group(String) group(name)
o #group(int) group(g)
. Per $
g, il primo numero dopo l'oggetto $
viene sempre considerato come parte del riferimento al gruppo. I numeri successivi vengono incorporati in g se formano un riferimento a un gruppo legale. Solo i numerali da '0' a '9' vengono considerati come componenti potenziali del riferimento al gruppo. Se il secondo gruppo corrisponde alla stringa "foo"
, ad esempio, il passaggio della stringa "$2bar"
di sostituzione causerebbe "foobar"
l'accodamento al buffer di stringa. Un segno di dollaro ($
) può essere incluso come valore letterale nella stringa di sostituzione precedendolo con una barra rovesciata (\$
).
Si noti che le barre rovesciate () e i segni di dollaro (\
$
) nella stringa di sostituzione possono causare risultati diversi rispetto a quelli considerati come stringa di sostituzione letterale. I segni di dollaro possono essere considerati come riferimenti alle sottosequenze acquisite come descritto in precedenza e le barre rovesciate vengono usate per eseguire l'escape dei caratteri letterali nella stringa di sostituzione.
Questo metodo deve essere usato in un ciclo insieme ai #appendTail(StringBuffer) appendTail
metodi e #find() find
. Il codice seguente, ad esempio, scrive one dog two dogs in the yard
nel flusso di output standard:
<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>
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.
Si applica a
AppendReplacement(StringBuilder, String)
Implementa un passaggio di accodamento e sostituzione non terminale.
[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
Parametri
Generatore di stringhe di destinazione
- replacement
- String
Stringa da usare per la sostituzione
Restituisce
Questo matcher
- Attributi
Commenti
Implementa un passaggio di accodamento e sostituzione non terminale.
Questo metodo esegue le azioni seguenti:
<olo>
<li>
Legge i caratteri dalla sequenza di input, a partire dalla posizione di accodamento e li aggiunge al generatore di stringhe specificato. Si interrompe dopo aver letto l'ultimo carattere precedente alla corrispondenza precedente, ovvero il carattere in corrispondenza dell'indice #start()
-
1
.
</li>
<li>
Aggiunge la stringa di sostituzione specificata al generatore di stringhe.
</li>
<li>
Imposta la posizione di accodamento di questo matcher sull'indice dell'ultimo carattere corrispondente, più uno, ovvero su #end()
.
</li>
</olo>
La stringa di sostituzione può contenere riferimenti alle sottosequenze acquisite durante la corrispondenza precedente: ogni occorrenza di g verrà sostituita dal risultato della valutazione(
#group(int) group
di$
g.)
Il primo numero dopo l'oggetto $
viene sempre considerato come parte del riferimento al gruppo. I numeri successivi vengono incorporati in g se formano un riferimento a un gruppo legale. Solo i numerali da '0' a '9' vengono considerati come componenti potenziali del riferimento al gruppo. Se il secondo gruppo corrisponde alla stringa , ad esempio, il passaggio della stringa "foo"
"$2bar"
di sostituzione causerebbe "foobar"
l'aggiunta al generatore di stringhe. Un segno di dollaro ($
) può essere incluso come valore letterale nella stringa di sostituzione precedendolo con una barra rovesciata (\$
).
Si noti che le barre rovesciate () e i segni di dollaro (\
$
) nella stringa di sostituzione possono causare risultati diversi rispetto a quelli considerati come stringa di sostituzione letterale. I segni di dollaro possono essere considerati come riferimenti alle sottosequenze acquisite come descritto in precedenza e le barre rovesciate vengono usate per eseguire l'escape dei caratteri letterali nella stringa di sostituzione.
Questo metodo deve essere usato in un ciclo insieme ai #appendTail(StringBuilder) appendTail
metodi e #find() find
. Il codice seguente, ad esempio, scrive one dog two dogs in the yard
nel flusso di output standard:
<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>
Aggiunta in 9.
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.