Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式-匹配XML页面中的内容_Regex_Sitescope - Fatal编程技术网

Regex 正则表达式-匹配XML页面中的内容

Regex 正则表达式-匹配XML页面中的内容,regex,sitescope,Regex,Sitescope,我不熟悉正则表达式,需要编写一个正则表达式来从XML页面中提取某些数据。比如说, <name>Number of test runs</name> <value>2</value> 测试运行次数 2. 我唯一需要的号码是2。我希望它查看XML标记名,这样我就不会从页面上的任何其他数字中提取。下面是我所拥有的,但我正在匹配所有内容,而不仅仅是2。任何帮助都将不胜感激 当前正则表达式: /<name>Number of Failed B

我不熟悉正则表达式,需要编写一个正则表达式来从XML页面中提取某些数据。比如说,

<name>Number of test runs</name>
<value>2</value>
测试运行次数
2.
我唯一需要的号码是2。我希望它查看XML标记名,这样我就不会从页面上的任何其他数字中提取。下面是我所拥有的,但我正在匹配所有内容,而不仅仅是2。任何帮助都将不胜感激

当前正则表达式:

/<name>Number of Failed BGPs</name>\n<value>(.+?)/
/失败的BGP数\n(+?)/

您说过问题在于它匹配的是所有内容,而不仅仅是值(2)。但您确实需要匹配所有内容,以确保它是正确的
标记

您想要的区别是匹配的,由parens指定

/<name>Number of Failed BGPs<\/name>\n<value>(.+?)<\/value>/
/失败的BGP数\n(+?)/

您希望得到第一个匹配的组,该组应该只是值本身。注意,我还将
标记添加到正则表达式中。如果您不这样做,您的懒惰量词将只拾取第一个数字。

您使用的是哪个正则表达式引擎或语言?老实说,我甚至不确定。我正在Sitescope内的监视工具中使用。它只适用于基本的POSIX正则表达式功能如果您能更好地解释,您将实现什么?获取
,如果前面有
失败BGP的数量\n
,但在包含
之前不获取零件?什么?测试运行次数2这两条语句将始终同时出现在页面上。所以我想使用测试运行的次数来确保输入正确的值。但我只想匹配标签之间的数字。这仍然不能按需要工作。我很难找到一个短语的“键”来获得下一个数字。下面是我试图匹配其值的更多XML页面。您可以看到该页有几个“”标记。这就是为什么我需要搜索失败的BGP的数量,然后搜索之后的下一个值。我希望正则表达式只输入该值,这样我就可以监视该值是否不等于0。'Number of Handled Requests 73.0-Number of Running BGPs 0.0-Number of Waiting BGPs 0.0-Number of Waiting In Data source-1.0-Total Number of Waiting BGPs 73.0'我已将示例XML添加到原始XML中这样大家就更容易阅读了。为了解决这个问题,我避开了正则表达式中的斜杠,但除此之外,这仍然是您所需要的。它专门寻找“失败BGP的数量”,并获得紧随其后的值。