【发布时间】:2020-08-23 10:54:42
【问题描述】:
例如,我有以下文本(存储为$test):
\u003c/p\u003e\n\u003cp\u003e\u003c/p\u003e\n\u003cimg src=\"/sites/mysite/SiteCollectionImages/banner.jpg\" alt=\"\" 样式=\“浮动:无;高度:自动;宽度: auto\"/\u003e\n\u003cp\u003e更多的肉,更少的浪费,意味着更多的价值 为您 美元。\u003c/p\u003e\n\u003cp\u003e\u003c/p\u003e\n\u003cp\u003e当 在您的食谱中替代鸸鹋肉或计划您的服务 部分,请记住,低脂鸸鹋肉不会像 其他肉类。你得到更多你付出的没有骨头,外部 脂肪,或软骨。鸸鹋肉在货架上非常稳定,尤其是在真空的情况下 包装。正确真空包装的肉类将保持新鲜 冰箱长达 4 周,您的冰箱长达 6-9 个月 冰箱。\u003c/p\u003e\n\u003cp\u003e\u003c/p\u003e\n\u003cimg src=\"/sites/mysite/SiteCollectionImages/logo.jpg\" alt=\"\" 样式=\“浮动:无;高度:自动;宽度: 自动\"/\u003e\n\u003cp\u003e\u003c/p\u003e\n\u003cp\u003e\u003c/p\u003e\n\u003cp\u003e
我想更新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) })
【问题讨论】:
-
更新了我的答案,将“争夺”功能应用于比赛。
标签: regex powershell