使用REGEX(在PowerShell中)我想在文本文件中找到一个超过两行的模式,并用新文本替换它并保留空白。示例文本:
ObjectType=Page
ObjectID=70000
我的匹配字符串是
RunObjectType=Page;\s+RunObjectID=70000
我想要的结果是
ObjectType=Page
ObjectID=88888
问题是我的替换字符串
RunObjectType=Page;`n+RunObjectID=88888
返回
ObjectType=Page
ObjectID=88888
我需要它来保持原始间距。更复杂的是,间距的数量可能会发生变化。
建议?
答案 0 :(得分:1)
在替换模式中利用捕获组和对该组的反向引用:
$s -replace 'RunObjectType=Page;(\s+)RunObjectID=70000', 'RunObjectType=Page;$1RunObjectID=88888'
请参阅regex demo
使用(\s+)
,您捕获所有空格到组1缓冲区中,然后使用$1
反向引用将值插入到结果中。