在下面的代码中,我试图用保存正确代码的css文件替换不能正常运行的css文件的一部分。
在第1部分,我获得了两个文件。
在第2部分,我使用正则表达式从bad.css中过滤掉了无效部分。
在第3部分,我想用good.css文件替换坏的css。但是我收到错误"正则表达式模式无效"。
应该注意$b
是一种数组,$d
是一种字符串。但我真的不知道它是否有所作为。
#1. get files
$overrider = (Join-Path $powerShellResourcePath "good.css")
$b = Get-Content $overrider
$stylingOverride = (Join-Path $contentPath "bad.css")
$c = Get-Content $stylingOverride
#2. gets the part that should be replaced in bad.css
$d = [Regex]::Matches($c, '(start)(.*?)(end)') | Select -ExpandProperty Value
#3. should replace the regex part in bad.css with the whole good.css
if ($d) {
$c = $c -replace $d, $b
Set-Content $stylingOverride -Value $c
}
答案 0 :(得分:3)
转义提取的字符串,以便匹配文字(子)字符串:
$c = $c -replace [regex]::Escape($d), $b
或者使用.Replace()
方法代替-replace
运算符。前者执行简单的字符串替换,而后者执行正则表达式替换。
$c = $c.Replace($d, $b)