有人可以提供帮助 - 需要一个正则表达式,它将选择仅在STRINGA和STRINGB之间发生的任何和所有STRING,而不管换行符。我试过研究这个没有成功。其他“两个字符串之间”的查询对此没有帮助。
具体来说,我只需要在h3标签之间选择ONLY标签(包括lt gt符号)。
<p> asdf <strong> ghkjk
<strong> qwer </p>
<h3> asdf **<strong>** gh
kjk **<strong>** qwer </h3>
我可以选择只有所有标签;我可以让它选择&lt; h3&gt;的完整序列。和&lt; / h3&gt;标签。但我看不出如何结合这两个条件。 (顺便说一句,regexr.com是一个很棒的工具!) 感谢。
答案 0 :(得分:0)
当涉及到正则表达式时,HTML并不容易使用,并且在特定(和罕见)情况下几乎总是会失败。但是,在大多数情况下,从标签中提取信息是可能的。从表中提取信息(然后可以在其中包含另一个表)是正则表达式开始崩溃的地方。
我想出了(?<=\<[hH]3\>)(.|\s)*?(?=\<\/[hH]3\>)
,它解决了简单的情况(<h3>info</h3>
)
https://regex101.com/r/qK6uT4/1
请注意,由于积极的外观,这在javascript中不会起作用。我们的想法是检查之前是否有h3标签,以及lookarounds之后的/ h3标签。
(.|\s)*?
表示任何符号和包含换行符的任何空格都会出现最短的次数(因此您不会在一个<h3>
标记和另一个</h3>
之间得到符号。
要处理<h3 class="someclass">
等情况,如果它们相关,则之前的正则表达式失败。
(?:\<[hH]3(?:\s.*?)?\>)((.|\s)*?)(?=\<\/[hH]3\>)
可以使用,捕获组($ 1)就是你的结果。
答案 1 :(得分:0)
regex用于检测平板电脑是否随附4G / 3G / LTE
var txt1 = document.querySelector('.product-title').textContent.trim();
var ans;
if(txt1.match(/\b4G\b/gi) || txt1.match(/\bLTE\b/gi) || txt1.match(/\b3G\b/gi) ||txt1.match(/ Cellular/gi)||txt1.match(/ Cell /gi) || txt1.match(/ 4G /g) || txt1.match(/ LTE /g) || txt1.match(/ 3G /g) || txt1.match(/\b4G\b,/g)|| txt1.match(/\b3G\b,/g))
{
ans= '1';
}
else
{
ans= '0';
}