匹配打开和关闭标记

时间:2016-06-24 12:39:54

标签: javascript regex

我有这个字符串:

"<myTag att1="val1"><myTag></myTag></myTag><myTag></myTag>"

我需要的是匹配:

<myTag att1="val1"><myTag></myTag></myTag>

我尝试使用正则表达式但它得到了:

<myTag att1="val1"><myTag></myTag>

我该如何解决?

3 个答案:

答案 0 :(得分:1)

消除默认的贪婪性质,并写下以下内容: -

(.+?)

请注意,在少数编辑器中,字符串中的att1 =“val1”可能无法识别。因此,对于该前缀'\'。但上面的正则表达式应该可行

答案 1 :(得分:0)

试一试:

/(<myTag(\satt1="val1")*>)+(<\/myTag>)*/g

答案 2 :(得分:0)

比其他解决方案更明确,但有了这个,你可以通过myTag多次封装myTag。

var res = str.match(/<myTag .*>.*<myTag>.*<\/myTag>[^<]*<\/myTag>/g);