例如,我有以下文本(存储为$test
):
我想将img src=\"
和\"
之间的粗体文本更新为/sites/newSite/newLibrary/originalFilename.v2.jpg
之类的内容
我将如何使用正则表达式在Powershell中进行这些替换?
我已经尝试过$test -replace '(?<=img src=\")(?<imgUrl>\")', ' '
来启动,即使那样也不能代替我。
更新
我能够使用$test -replace '(?<=img src=\\")(.+?)(?=\\")', '$1'
捕获需要替换的内容(感谢@ user1390638)
我想在替换之前对$1
应用一个函数,所以我必须这样做以使其起作用:[regex]::Replace($test, '(?<=img src=\\")(.+?)(?=\\")', {param($match) someFunction($match.Groups[1].Value) })
最佳答案
您的正则表达式是错误的,要匹配之间的字符串,应使用以下正则表达式。
(?<=img src=\\").+?(?=")
假设您的文本已分配给$ text变量。
$text -replace('(?<=img src=\\").+?(?=")',"/sites/newSite/newLibrary/originalFilename.v2.jpg")
要替换多个文本,基本上可以调用两次-replace,例如$ text -replace(...)-replace(...)