正则表达式在替换中保留空格
regex preserve whitespace in replace
使用 REGEX(在 PowerShell 中)我想在超过两行的文本文件中找到一个模式,并将其替换为新文本并保留空格。示例文本:
ObjectType=Page
ObjectID=70000
我的匹配字符串是
RunObjectType=Page;\s+RunObjectID=70000
我想要的结果是
ObjectType=Page
ObjectID=88888
问题是我的替换字符串
RunObjectType=Page;`n+RunObjectID=88888
returns
ObjectType=Page
ObjectID=88888
而且我需要它来保持原来的间距。更复杂的是间距的数量可能会改变。
建议?
在替换模式中利用捕获组和对该组的反向引用:
$s -replace 'RunObjectType=Page;(\s+)RunObjectID=70000', 'RunObjectType=Page;RunObjectID=88888'
使用 (\s+)
,您 捕获 所有空白到组 1 缓冲区,然后使用
反向引用,将值插入到结果。
使用 REGEX(在 PowerShell 中)我想在超过两行的文本文件中找到一个模式,并将其替换为新文本并保留空格。示例文本:
ObjectType=Page
ObjectID=70000
我的匹配字符串是
RunObjectType=Page;\s+RunObjectID=70000
我想要的结果是
ObjectType=Page
ObjectID=88888
问题是我的替换字符串
RunObjectType=Page;`n+RunObjectID=88888
returns
ObjectType=Page
ObjectID=88888
而且我需要它来保持原来的间距。更复杂的是间距的数量可能会改变。
建议?
在替换模式中利用捕获组和对该组的反向引用:
$s -replace 'RunObjectType=Page;(\s+)RunObjectID=70000', 'RunObjectType=Page;RunObjectID=88888'
使用 (\s+)
,您 捕获 所有空白到组 1 缓冲区,然后使用 反向引用,将值插入到结果。