正则表达式中的替代
它们使用正则表达式模式定义全部或部分用于替换输入字符串中的匹配文本的文本。
替换模式可以包含一个或多个替换以及本文字符
替换 |
说明 |
---|---|
number |
number 标识的捕获组所匹配的最后一个子字符串。 |
} |
。 |
$$ |
|
$& |
|
$` |
。 |
$' |
。 |
$+ |
。 |
$_ |
有关详细信息。 |
number示例: pattern: (a)(d)(b); replacement: $1 replacement: $2 replacement: $3 input:a1b input:a1b input:a1b output:a output:1 output:b 也就是将整个匹配结果替换成某个捕获组
number pattern: (a)(?<group>d)(b) replacement: ${group} input:a1b
output:1 也就是将整个匹配结果替换成某个命名捕获组
$$ 示例:
pattern: adb
replacement: $$($$表示$,是替代中的转义字符)
input:a1b;
output:1
也就是将整个匹配结果替换成$
$&示例:
pattern: adb
replacement: $&
input:a1b
output:a1b
也就是将整个匹配结果替换成本身
$`示例:($`说明$`
替换将不起作用。 ) pattern: d+ replacement: $` input:aa1bb2cc3dd4ee5 output:aaaabbaa1bbccaa1bb2ccddaa1bb2cc3ddeeaa1bb2cc3dd4ee
$` 替换如何使正则表达式引擎替换输入字符串中的每个匹配项。
红色字体显示。
Match |
Position |
匹配项前的字符串 |
结果字符串 |
---|---|---|---|
1 |
2 |
aa |
aabb2cc3dd4ee5 |
2 |
5 |
aa1bb |
aa1bbcc3dd4ee5 |
3 |
8 |
aa1bb2cc |
aa1bb2ccdd4ee5 |
4 |
11 |
aa1bb2cc3dd |
aa1bb2cc3ddee5 |
5 |
14 |
aa1bb2cc3dd4ee |
aa1bb2cc3dd4ee |
$'示例:(类似$`,刚好和$`相反)
pattern: d+
replacement: $'
input: aa1bb2cc3dd4ee5
output:aaaabbaa1bbccaa1bb2ccddaa1bb2cc3ddeeaa1bb2cc3dd4ee
$` 替换如何使正则表达式引擎替换输入字符串中的每个匹配项。
红色字体显示。
Match |
Position |
匹配项后的字符串 |
结果字符串 |
---|---|---|---|
1 |
2 |
bb2cc3dd4ee5 |
bb2cc3dd4ee5bb2cc3dd4ee5 |
2 |
5 |
cc3dd4ee5 |
cc3dd4ee5cc3dd4ee5 |
3 |
8 |
dd4ee5 |
dd4ee5dd4ee5 |
4 |
11 |
ee5 |
ee5 |
5 |
14 |
为空 |
aabb2cc3dd4ee5bbcc3dd4ee5ccdd4ee5ddee5ee |
$+ 示例:
pattern: (a)(d)(b)
replacement: $+
input:a1b
output:b
也就是将整个匹配结果替换成最后一个捕获组
$_$number示例:
pattern: d
replacement: $_
input:a1b
output:aa1bb
也就是将整个匹配结果替换成整个输入字符串