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(int) group(g)分别评估#group(String) group(name)的结果。 对于 $g,始终将后的第一个数字 $ 视为组引用的一部分。 如果后续数字将形成法律组引用,则会将其合并到 g 中。 只有数字“0”到“9”被视为组引用的潜在组成部分。 例如,如果第二个组匹配字符串 "foo",则传递替换字符串 "$2bar" 将导致 "foobar" 追加到字符串缓冲区。 美元符号 ($) 可以在替换字符串中以反斜杠 (\$) 作为文本包含在它前面。

请注意,替换字符串中的反斜杠 (\) 和美元符号 ($) 可能会导致结果与将其视为文本替换字符串时的结果不同。 美元符号可以被视为对捕获的子序列的引用,如前所述,反斜杠用于转义替换字符串中的文本字符。

此方法旨在与 #appendTail(StringBuffer) appendTail#find() find 方法一起在循环中使用。 例如,以下代码写入 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.util.regex.Matcher.appendReplacement(java.lang.StringBuffer, java.lang.String)Java 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

适用于

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" 追加到字符串生成器。 美元符号 ($) 可以在替换字符串中以反斜杠 (\$) 作为文本包含在它前面。

请注意,替换字符串中的反斜杠 (\) 和美元符号 ($) 可能会导致结果与将其视为文本替换字符串时的结果不同。 美元符号可以被视为对捕获的子序列的引用,如前所述,反斜杠用于转义替换字符串中的文本字符。

此方法旨在与 #appendTail(StringBuilder) appendTail#find() find 方法一起在循环中使用。 例如,以下代码写入 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.util.regex.Matcher.appendReplacement(java.lang.StringBuilder, java.lang.String)Java 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

适用于