Язык

Matcher.AppendReplacement Метод

Определение

Перегрузки

Имя. Описание
AppendReplacement(StringBuffer, String)

Реализует шаг добавления и замены без терминала.

AppendReplacement(StringBuilder, String)

Реализует шаг добавления и замены без терминала.

AppendReplacement(StringBuffer, String)

Реализует шаг добавления и замены без терминала.

[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

Параметры

sb
StringBuffer

Целевой буфер строки

replacement
String

замещающая строка

Возвращаемое значение

Этот компанер

Атрибуты

Исключения

Если успешное совпадение не выполнено.

Комментарии

Реализует шаг добавления и замены без терминала.

Этот метод выполняет следующие действия:

<ol>

<li>

Он считывает символы из входной последовательности, начиная с позиции добавления, и добавляет их в заданный строковый буфер. Он останавливается после считывания последнего символа, предшествующего предыдущему совпадению, т. е. символ в индексе #start()&->1.

</li>

<li>

Он добавляет указанную строку замены к буферу строки.

</li>

<li>

Он задает позицию добавления этого компатера к индексу последнего совпадения символов, а также к одному, то есть #end().

</li>

</ol>

Строка замены может содержать ссылки на вложенные значения, захваченные во время предыдущего совпадения: каждое вхождение ${имени} или $g будет заменено результатом оценки соответствующих #group(String) group(name) или #group(int) group(g) соответственно. Для $g, первое число после $ всегда рассматривается как часть ссылки на группу. Последующие числа включаются в g, если они будут формировать ссылку на юридическую группу. Только цифры "0" до "9" считаются потенциальными компонентами ссылки на группу. Если вторая группа соответствовала строке "foo", например, передача строки замены "$2bar" приведет "foobar" к добавлению в буфер строки. Знак доллара ($) может быть включен в качестве литерала в строку замены, предшествовав ей с обратной косой чертой (\$).

Обратите внимание, что знаки обратной косой очки (\) и знаки доллара ($) в строке замены могут привести к тому, что результаты могут отличаться от того, если бы оно рассматривалось как литеральная строка замены. Знаки доллара могут рассматриваться как ссылки на захваченные подсезоны, как описано выше, и обратные косые знаки используются для экранирования литеральных символов в строке замены.

Этот метод предназначен для использования в цикле вместе с методами и #find() find методами#appendTail(StringBuffer) appendTail. Следующий код, например, записывается one dog two dogs in the yard в стандартный выходной поток:

<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 документации по java.util.regex.Matcher.appendReplacement(java.lang.StringBuffer, java.lang.String).

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Применяется к

AppendReplacement(StringBuilder, String)

Реализует шаг добавления и замены без терминала.

[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

Параметры

sb
StringBuilder

Построитель целевых строк

replacement
String

замещающая строка

Возвращаемое значение

Этот компанер

Атрибуты

Комментарии

Реализует шаг добавления и замены без терминала.

Этот метод выполняет следующие действия:

<ol>

<li>

Он считывает символы из входной последовательности, начиная с позиции добавления, и добавляет их к заданному построителю строк. Он останавливается после считывания последнего символа, предшествующего предыдущему совпадению, т. е. символ в индексе #start()&->1.

</li>

<li>

Он добавляет указанную строку замены к построителю строк.

</li>

<li>

Он задает позицию добавления этого компатера к индексу последнего совпадения символов, а также к одному, то есть #end().

</li>

</ol>

Строка замены может содержать ссылки на вложенные значения, захваченные во время предыдущего совпадения: каждое вхождение $g будет заменено результатом оценки #group(int) group(g). Первое число после $ всегда обрабатывается как часть ссылки на группу. Последующие числа включаются в g, если они будут формировать ссылку на юридическую группу. Только цифры "0" до "9" считаются потенциальными компонентами ссылки на группу. Если вторая группа соответствовала строке "foo", например, передача строки замены "$2bar" приведет "foobar" к добавлению в построитель строк. Знак доллара ($) может быть включен в качестве литерала в строку замены, предшествовав ей с обратной косой чертой (\$).

Обратите внимание, что знаки обратной косой очки (\) и знаки доллара ($) в строке замены могут привести к тому, что результаты могут отличаться от того, если бы оно рассматривалось как литеральная строка замены. Знаки доллара могут рассматриваться как ссылки на захваченные подсезоны, как описано выше, и обратные косые знаки используются для экранирования литеральных символов в строке замены.

Этот метод предназначен для использования в цикле вместе с методами и #find() find методами#appendTail(StringBuilder) appendTail. Следующий код, например, записывается one dog two dogs in the yard в стандартный выходной поток:

<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>

Добавлено в 9.

Java документации по java.util.regex.Matcher.appendReplacement(java.lang.StringBuilder, java.lang.String).

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Применяется к