这是一个例子。尝试重新插入捕获的子域,但由于父域以数字开头,因此导致问题。
'127.0.0.1 test.2domain.com' -replace '127.0.0.1 (.*)2domain.com', '192.168.1.1 $12domain.com'
如果你放一个空格,正则表达式变量会正确扩展,但它也会插入空格。
'127.0.0.1 test.2domain.com' -replace '127.0.0.1 (.*)2domain.com', '192.168.1.1 $1 2domain.com'
我知道我可以在这一点上做另一个替换以摆脱它,我想知道是否有办法完成第一个例子?
答案 0 :(得分:3)
作为替代方案,您可以将正则表达式的其余部分包含在自己的一组中,例如:
PS > '127.0.0.1 test.2domain.com' -replace '127.0.0.1 (.*)(2domain.com)', '192.168.1.1 $1$2'
192.168.1.1 test.2domain.com
答案 1 :(得分:1)
您可以将-replace
代码放在subexpression $(...)
:
PS > "$('127.0.0.1 test.2domain.com' -replace '127.0.0.1 (.*)2domain.com', '192.168.1.1 $1')2domain.com"
192.168.1.1 test.2domain.com
PS >
另请注意,我使用引号"..."
来包含字符串。您需要这些以便评估子表达式。