我有超过10000个文本文件要使用Notepad ++或PowerShell将字符串searchResult
替换为该特定文本文件中的正则表达式。例如,这里是一个文本文件:
searchresult : [{"name": myRegexMatch .....}
替换后:
myRegexMatch : [{"name": myRegexMatch .....}
正则表达式匹配在每个文件中都不同。我只想用每个文件中的正则表达式替换searchResult
。
答案 0 :(得分:3)
这应该让你开始
$regex = '(?<=searchresult\s:\s\[{"name":\s).*(?=})'
Get-ChildItem $pathToFiles -Recurse | Where-Object { -not $_.PSIsContainer } |
ForEach-Object {
$text = (Get-Content $_ -Raw)
$value = [regex]::Match($text, $regex).Groups[1].Value
$text -replace "searchresult",$value | Set-Content -path $_
}