Matcher.AppendReplacement Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
AppendReplacement(StringBuffer, String) |
Implementa uma etapa de acréscimo e substituição não terminal. |
AppendReplacement(StringBuilder, String) |
Implementa uma etapa de acréscimo e substituição não terminal. |
AppendReplacement(StringBuffer, String)
Implementa uma etapa de acréscimo e substituição não terminal.
[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
Parâmetros
- sb
- StringBuffer
O buffer de cadeia de caracteres de destino
- replacement
- String
A cadeia de caracteres de substituição
Retornos
Este matcher
- Atributos
Exceções
se nenhuma correspondência bem-sucedida tiver sido feita.
Comentários
Implementa uma etapa de acréscimo e substituição não terminal.
Esse método executa as seguintes ações:
<Ol>
<li>
Ele lê caracteres da sequência de entrada, começando na posição de acréscimo, e os acrescenta ao buffer de sequência de caracteres fornecido. Ele pára depois de ler o último caractere que precede a partida anterior, ou seja, o caractere no índice #start()
-
1
.
</li>
<li>
Ele acrescenta a sequência de caracteres de substituição fornecida ao buffer de sequência de caracteres.
</li>
<li>
Ele define a posição de acréscimo desse correspondente ao índice do último caractere correspondido, mais um, ou seja, a #end()
.
</li>
</Ol>
A sequência de substituição pode conter referências a subsequências capturadas durante a correspondência anterior: Cada ocorrência de ${
nome}
ou$
g será substituída pelo resultado da avaliação do correspondente #group(String) group(name)
ou #group(int) group(g)
respectivamente. Para $
g, o primeiro número após o $
é sempre tratado como parte da referência do grupo. Os números subsequentes são incorporados em g se formarem uma referência de grupo jurídico. Apenas os algarismos '0' a '9' são considerados como componentes potenciais da referência do grupo. Se o segundo grupo correspondesse à cadeia de caracteres "foo"
, por exemplo, passar a cadeia de caracteres "$2bar"
de substituição faria com que "foobar"
fosse acrescentado ao buffer de cadeia de caracteres. Um cifrão ($
) pode ser incluído como literal na cadeia de caracteres de substituição, precedendo-o com uma barra invertida (\$
).
Observe que barras invertidas (\
) e cifrões ($
) na cadeia de caracteres de substituição podem fazer com que os resultados sejam diferentes do que se estivesse sendo tratada como uma cadeia de caracteres de substituição literal. Os cifrões podem ser tratados como referências a subsequências capturadas, conforme descrito acima, e barras invertidas são usadas para escapar de caracteres literais na cadeia de caracteres de substituição.
Este método destina-se a ser usado em um loop juntamente com os #appendTail(StringBuffer) appendTail
métodos e #find() find
. O código a seguir, por exemplo, grava one dog two dogs in the yard
no fluxo de saída padrão:
<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>
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.
Aplica-se a
AppendReplacement(StringBuilder, String)
Implementa uma etapa de acréscimo e substituição não terminal.
[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
Parâmetros
O construtor de cadeias de caracteres de destino
- replacement
- String
A cadeia de caracteres de substituição
Retornos
Este matcher
- Atributos
Comentários
Implementa uma etapa de acréscimo e substituição não terminal.
Esse método executa as seguintes ações:
<Ol>
<li>
Ele lê caracteres da sequência de entrada, começando na posição de acréscimo, e os acrescenta ao construtor de cadeia de caracteres fornecido. Ele pára depois de ler o último caractere que precede a partida anterior, ou seja, o caractere no índice #start()
-
1
.
</li>
<li>
Ele acrescenta a cadeia de caracteres de substituição fornecida ao construtor de cadeias de caracteres.
</li>
<li>
Ele define a posição de acréscimo desse correspondente ao índice do último caractere correspondido, mais um, ou seja, a #end()
.
</li>
</Ol>
A cadeia de substituição pode conter referências a subsequências capturadas durante a partida anterior: Cada ocorrência de $
g será substituída pelo resultado da avaliação(
#group(int) group
de g)
. O primeiro número após o $
é sempre tratado como parte da referência do grupo. Os números subsequentes são incorporados em g se formarem uma referência de grupo jurídico. Apenas os algarismos '0' a '9' são considerados como componentes potenciais da referência do grupo. Se o segundo grupo correspondesse à cadeia de caracteres "foo"
, por exemplo, passar a cadeia de caracteres "$2bar"
de substituição faria com que "foobar"
fosse acrescentado ao construtor de cadeias de caracteres. Um cifrão ($
) pode ser incluído como literal na cadeia de caracteres de substituição, precedendo-o com uma barra invertida (\$
).
Observe que barras invertidas (\
) e cifrões ($
) na cadeia de caracteres de substituição podem fazer com que os resultados sejam diferentes do que se estivesse sendo tratada como uma cadeia de caracteres de substituição literal. Os cifrões podem ser tratados como referências a subsequências capturadas, conforme descrito acima, e barras invertidas são usadas para escapar de caracteres literais na cadeia de caracteres de substituição.
Este método destina-se a ser usado em um loop juntamente com os #appendTail(StringBuilder) appendTail
métodos e #find() find
. O código a seguir, por exemplo, grava one dog two dogs in the yard
no fluxo de saída padrão:
<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>
Adicionado em 9.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.