用于查找特定html标记详细信息的javascript正则表达式
我想要一个正则表达式来找出特定html标记的详细信息 我试过bellow 2正则表达式:用于查找特定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种情况:全部为单个字符串和 第二种情况:作为单个字符串 ==
<\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>
(.+?)