Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.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
用于查找特定html标记详细信息的javascript正则表达式_Javascript_Jquery_Asp.net_Regex - Fatal编程技术网

用于查找特定html标记详细信息的javascript正则表达式

用于查找特定html标记详细信息的javascript正则表达式,javascript,jquery,asp.net,regex,Javascript,Jquery,Asp.net,Regex,我想要一个正则表达式来找出特定html标记的详细信息 我试过bellow 2正则表达式: <\s*tag[^>]*>(.*?)<\s*/\s*tag> <tag[^<>]*>.+?<\/tag> ]*>(**?) .+? 以下是第一个正则表达式的2个测试用例: 在第一个示例中我得到了正确的结果,但在示例2中我得到了错误的结果。 在这两种情况下,看跌期权几乎相同 第1种情况:全部为单个字符串和 第二种情况:作为单个字符串 ==

我想要一个正则表达式来找出特定html标记的详细信息

我试过bellow 2正则表达式:

<\s*tag[^>]*>(.*?)<\s*/\s*tag>

<tag[^<>]*>.+?<\/tag>
]*>(**?)
.+?
以下是第一个正则表达式的2个测试用例:

第一个示例中我得到了正确的结果,但在示例2中我得到了错误的结果。 在这两种情况下,看跌期权几乎相同

第1种情况:全部为单个字符串和 第二种情况:作为单个字符串

===================================
Example 1 Input
===================================
<tagX>AAA</tagX>
<tag>GGG</tag>
<tag id="tag896">HHH</tag>
<tagY>III</tagY>
<tag id="tag017">JJJ</tag>
<tag>KKK</tag>
===================================
Output 1 // Correct
===================================
<tag>GGG</tag>
GGG
<tag id="tag896">HHH</tag>
HHH
<tag id="tag017">JJJ</tag>
JJJ
<tag>KKK</tag>
KKK


===================================
Example 2 Input (as a single string)
===================================
<tagX>AAA</tagX><tag>GGG</tag><tag id="tag896">HHH</tag><tagY>III</tagY><tag id="tag017">JJJ</tag><tag>KKK</tag>
===================================
Output 2 // Wrong
===================================
<tagX>AAA</tagX><tag>GGG</tag>
AAA</tagX><tag>GGG

<tag id="tag896">HHH</tag>
HHH

<tagY>III</tagY><tag id="tag017">JJJ</tag>
III</tagY><tag id="tag017">JJJ

<tag>KKK</tag>
KKK
===================================
示例1输入
===================================
AAA
GGG
啊
三,
JJJ
KKK
===================================
输出1//正确
===================================
GGG
GGG
啊
啊
JJJ
JJJ
KKK
KKK
===================================
示例2输入(作为单个字符串)
===================================
aaaggghhiijjkk
===================================
输出2//错误
===================================
阿格
阿格
啊
啊
iijjj
iijjj
KKK
KKK
这里正是我想要的(tag)的详细信息,但在第二种情况下,它获取(tag)+(tagX)+(tagY)详细信息

我的输入类似于第二次输入…

它很紧急。。。我能找到解决办法吗


谢谢……

您在编写正则表达式时遇到的问题是,如果在同一行中有一个“”,则允许将
(例如)作为开头标记

在本例中使用正则表达式的问题是,如果XML为:

<tag></tag>
<tagX></tagX>
<tag></tag>

如果所有的标签都是内联的,那么你就可以得到整个东西,所以要非常小心

我会使用这样的东西(上面的例子就是这样):

)|(\s*>)[^]*
在这里,我允许所有有效的空白,但我不允许嵌套标记,因此上面的示例可以工作。此外,如果允许嵌套标记,则任何正则表达式都不起作用。看看这个例子:

<tag> <tagX> <tag> </tag> </tagX> </tag>

不过,在本例中,您将得到有效的答案。

如果您使用的是.NET(并且由于某些原因,您确信您的XML并且不需要使用),您可以尝试以下方法:

<tag(?:>|(?: .*?>))(.*?)</tag>
|(?:.*)(.*))

我尝试了下面的正则表达式,它工作正常

<tag( [^<>]+)?>(.+?)<\/tag>
(.+?)