我有字符串:
<em>hhhhhhhhhhhhh gggggggggggg hhhhhhhhhhh</em> <strong>hhhhhhhhhh hhhhhhhhh hhhhhhhhh</strong> gggggggggg ggggggg hhhhhhhhhhh ggggggggggggggggggggggggg <em>ggggggg ggggggg <strong>gggggggg dddddddddd</strong></em>
现在我找不到:
var regex = /<em>(.*?)<\/strong><\/em>/g;
var spr = string.match(regexxx);
alert(spr.toString());
这会打印我的完整字符串。
<em>hhhhhhhhhhhhh gggggggggggg hhhhhhhhhhh</em> <strong>hhhhhhhhhh hhhhhhhhh hhhhhhhhh</strong> gggggggggg ggggggg hhhhhhhhhhh ggggggggggggggggggggggggg <em>ggggggg ggggggg <strong>gggggggg dddddddddd</strong></em>
确定这很好。 但这不是我想要的! 我想要这个:
<em>ggggggg ggggggg <strong>gggggggg dddddddddd</strong></em>
正则表达式必须找到:
之间的所有内容<em>...</strong></em>
但不是如果在
之间<em>..**</em>**.</strong></em> .
这是不正确的:
<em>testestest</em>test test</strong></em>
这很好:
<em>test<strong>test test</strong></em>
我使用什么正则表达式来执行此操作?
答案 0 :(得分:0)
我修复了你的正则表达式。如果您想访问<em>
和<strong>
元素中的内容,只需在正则表达式的()
部分添加[^<]
。
var regex = /<em>[^<]*?<strong>[^<]*?<\/strong><\/em>/g;
var result = regex.exec(s)
console.log(result[0]);
此印刷品:
<em>ggggggg ggggggg <strong>gggggggg dddddddddd</strong></em>