Matcher.AppendReplacement 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
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
参数
目标字符串生成器
- 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 属性许可证中所述的术语使用。