我想要做的是找到包含字符串“test string”的标签,即使该标签嵌套在其他标签内也是如此。
HTML示例:
<section class="test-class1"><div><p class="test-class2">something else....test string</p></div></section>
正则表达式:
/.*<([a-zA-Z]*).*>.*?test string/g
输出:
p
我正在使用https://regex101.com/#javascript进行测试;
当html很小时,这个正则表达式很有效,但是当HTML的大小增加时,它会超时。
有没有办法提高正则表达式的性能?
答案 0 :(得分:0)
< *(\w+)[^<>]*>[^<]*(?:<[^>]*)*test string
匹配第一个捕获组(p
)中的$1
。不可能加速这么快。你最好使用纯JS函数。
答案 1 :(得分:0)
试试这个<(\w+)[^>]+>[^>]+test string
var data = '<section class="test-class1"><div><p class="test-class2">something else....test string</p></div></section>';
var regex = /<(\w+)[^>]+>[^>]+test string/
var output = regex.exec(data);
alert(output[1]);