正则表达式中的替代

它们使用正则表达式模式定义全部或部分用于替换输入字符串中的匹配文本的文本。

替换模式可以包含一个或多个替换以及本文字符

替换

说明

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
也就是将整个匹配结果替换成整个输入字符串