我想在PowerShell中使用正则表达式从XML文件内部删除某些子字符串。该文件看起来像这样:
<Name>FixedString1 FixedString2 VariableString</Name><Name>FixedString1 SearchString VariableString</Name>
因此,在文件中,“名称”(Name)标记中多次出现“ FixedString1”和“ FixedString2”的情况。 “ VariableString”在每种情况下都是不同的。
正则表达式需要找到“ SearchString”,以此为起点向后(从右到左),直到“ Name”标签的右括号“>”,包括“ FixedString1”和“ SearchString”本身。因此,正则表达式的输出需要为
FixedString1 SearchString
稍后可以使用PowerShell将其从XML文件中删除,这样我就可以了
<Name>VariableString</Name>
在XML文件中。
到目前为止,我在regex101.com中尝试的是
FixedString1 .*(?<= SearchString )
但是此正则表达式从文件中的第一个“ FixedString1”匹配开始,即从左到右匹配,直到“ SearchString”:
FixedString1 FixedString2 VariableString</Name><Name>FixedString1 SearchString
我希望它找到“ SearchString”,然后从那里一直到“ FixedString1”的第一次出现,包括两个字符串。
您能帮我吗?谢谢!
答案 0 :(得分:1)