Powershell,将 DOT 替换为 SPACE
Powershell, replace DOT with SPACE
这个有效:
$string = "This string, has a, lot, of commas in, it."
$string -replace ',',''
输出:这个字符串中有很多逗号。
但这不起作用:
$string = "This string. has a. lot. of dots in. it."
$string -replace '.',''
输出:空白。
为什么?
-replace
使用正则表达式 (regexp) 进行搜索,在正则表达式中,点是一个特殊字符。使用“\
”转义它,它应该可以工作。参见 Get-Help about_Regular_Expressions
。
-replace
中的第一个参数是正则表达式(但第二个不是)
'.'
是正则表达式中的一个特殊字符,表示每个字符
$string -replace '.', ''
表示:用 ''
(空白字符)
替换每个字符
结果你得到空白字符串
因此,为了转义正则表达式特殊字符 .
并将其视为普通字符,您必须使用 \
对其进行转义
$string -replace '\.', ''
- 如果你想稍后重用你的字符串,你必须将它重写为一个变量,否则结果将会丢失
$string = $string -replace '\.', ''
所以应该是:
$string = "This string. has a. lot. of dots in. it."
$string = $string -replace '\.', ''
然后
echo $string
结果:
This string has a lot of dots in it
这个有效:
$string = "This string, has a, lot, of commas in, it."
$string -replace ',',''
输出:这个字符串中有很多逗号。
但这不起作用:
$string = "This string. has a. lot. of dots in. it."
$string -replace '.',''
输出:空白。
为什么?
-replace
使用正则表达式 (regexp) 进行搜索,在正则表达式中,点是一个特殊字符。使用“\
”转义它,它应该可以工作。参见 Get-Help about_Regular_Expressions
。
-replace
中的第一个参数是正则表达式(但第二个不是)
'.'
是正则表达式中的一个特殊字符,表示每个字符
$string -replace '.', ''
表示:用''
(空白字符)
替换每个字符 结果你得到空白字符串
因此,为了转义正则表达式特殊字符.
并将其视为普通字符,您必须使用\
对其进行转义$string -replace '\.', ''
- 如果你想稍后重用你的字符串,你必须将它重写为一个变量,否则结果将会丢失
$string = $string -replace '\.', ''
所以应该是:
$string = "This string. has a. lot. of dots in. it."
$string = $string -replace '\.', ''
然后
echo $string
结果:
This string has a lot of dots in it