Поделиться через


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

Строка для замены

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

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

Атрибуты

Исключения

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

Комментарии

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

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

<Пр>

<Литий>

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

</Литий>

<Литий>

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

</Литий>

<Литий>

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

</Литий>

</Пр>

Строка замены может содержать ссылки на вложенные значения, захваченные во время предыдущего совпадения: каждое вхождение ${имени} или$ 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).

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

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

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

Строка для замены

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

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

Атрибуты

Комментарии

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

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

<Пр>

<Литий>

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

</Литий>

<Литий>

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

</Литий>

<Литий>

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

</Литий>

</Пр>

Строка замены может содержать ссылки на вложенные значения, захваченные во время предыдущего совпадения: каждое вхождение $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).

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

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