修改:虽然上面的问题是相关的,但问题与询问.replace
和-replace
之间的差异并不相同,也没有相同的答案
\d
匹配任何数字字符。
我有一个命令(gg
,git grep
的别名),它提供输出:
packages/somemodule/index.js:69: log(`woo`)
我熟悉正则表达式,并希望将输出更改为:
packages/somemodule/index.js:69 log(`woo`)
即。在第一个数字和冒号之后添加一个空格(如果您感兴趣,这是为了使文件可由编辑器打开)。但是一位数,一次或多次,后跟冒号 \d+:
不起作用:
gg 'No previous' | % {$_.replace("\d+:",'xxxx')}
尝试使用不同版本时,the \d不起作用。我做错了什么?
答案 0 :(得分:2)
命令输出被视为字符串数据。在您的代码中,您调用的[String].Replace()
方法不支持正则表达式。为了使其按预期工作,您需要使用PowerShell的-replace
运算符。
gg 'No previous' | % { $_ -replace '\d+:','xxxx' }
这种方法将允许PowerShell使用正则表达式替换字符串!