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>
Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом 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
Параметры
Построитель целевых строк
- 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.
Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.