如何在Windows工具中使用正则表达式在XML文件中查找内容?
我有一个很大的XML文件(~20 MB),其中包含以下行:如何在Windows工具中使用正则表达式在XML文件中查找内容?,xml,Xml,我有一个很大的XML文件(~20 MB),其中包含以下行: <BUR value="0.01" /> 现在我想找到所有值大于0.33的行。如何在Windows中执行此操作?我不知道特定于Windows的答案,但您可以使用 Perl的XML:Xpath库比使用正则表达式更好更简单: $ xpath blurtst.xml '//BLUR[@value > "0.33"]' Found 4 nodes: -- NODE -- <BLUR value="0.40" /&
<BUR value="0.01" />
现在我想找到所有值大于0.33的行。如何在Windows中执行此操作?我不知道特定于Windows的答案,但您可以使用 Perl的XML:Xpath库比使用正则表达式更好更简单:
$ xpath blurtst.xml '//BLUR[@value > "0.33"]'
Found 4 nodes:
-- NODE --
<BLUR value="0.40" />-- NODE --
<BLUR value="0.50" />-- NODE --
<BLUR value="0.34" />-- NODE --
<BLUR value="0.35" />
$xpath blurtst.xml'//BLUR[@value>“0.33”]
找到4个节点:
--节点--
--节点--
--节点--
--节点--
Hm。匹配的数字范围不是正则表达式的强项
适用于任意精度浮点(指数表示法除外)的正则表达式可能如下所示:
<BUR value="0*(?:[1-9]\d*\.\d*|0\.[4-9]\d*|0\.3[4-9]\d*|0\.33(?!0+")\d+)" />
$regex = [regex] '(?m)^.*<BUR value="0*(?:[1-9]\d*\.\d*|0\.[4-9]\d*|0\.3[4-9]\d*|0\.33(?!0+")\d+)" />.*$'
$matchdetails = $regex.Match($subject)
while ($matchdetails.Success) {
# matched text: $matchdetails.Value
$matchdetails = $matchdetails.NextMatch()
}
*$”
$matchdetails=$regex.Match($subject)
而($matchdetails.Success){
#匹配文本:$matchdetails.Value
$matchdetails=$matchdetails.NextMatch()
}
您是否安装了脚本语言?Python、Perl、Ruby。。。?哪个版本的Windows(可能自带PowerShell…)@Tim Pietzcker未安装脚本语言和Windows Vista