正则表达式用于获取javascript中的特定嵌套元素

学习者

我想使用regex而不使用dom解析器库和queryselector方法将特定元素嵌套在几个元素中。

正则表达式:

  <art .*?id="src".*?>(?:\s+)?<section .*?class="product".*?>(?:\s+)?<h3>(?:\s+)?(.+?)(?:\s+)?<\/h3><\/section>(?:\s+)?<\/art>

内容:

<art id="src">
  <section class="product">
    <h3>xvd</h3>
    <p>
     sjfdsjvdvds
    </p>
  </section>
  <section class="product">
    <h3>avdsvd</h3>
    <p>
    djsfdsjgdjs
    </p>
  </section>
  <section class="product">
    <h3>zdvdsv</h3>
    <p>
 safdgdsghhrh
    </p>
  </section>
  <section class="product">
    <h3>dd</h3>
    <p>zscsvdsvdsv</p>
  </section>
</art>

请帮助我纠正正则表达式

艾玛

我的猜测是您可能会h3 textContent使用,

<section .*?class="product".*?>\s*<h3>\s*(.+?)\s*<\/h3>.*?<\/section>\s*

那么如果您需要检查art元素,也许用进行更改,

<section .*?class="product".*?>\s*<h3>\s*(.+?)\s*<\/h3>.*?<\/section>\s*|<art .*?id="src".*?>

将是一个选项,否则使用JavaScript将会非常复杂。

演示版


如果您想简化/修改/探索表达式,请在regex101.com的右上方面板中进行说明如果您愿意,您还可以在此链接中观看,它如何与一些示例输入匹配。


const regex = /<section .*?class="product".*?>\s*<h3>\s*(.+?)\s*<\/h3>.*?<\/section>\s*|<art .*?id="src".*?>/gs;
const str = `<art id="src">
  <section class="product">
    <h3>xvd</h3>
    <p>
     sjfdsjvdvds
    </p>
  </section>
  <section class="product">
    <h3>avdsvd</h3>
    <p>
    djsfdsjgdjs
    </p>
  </section>
  <section class="product">
    <h3>zdvdsv</h3>
    <p>
 safdgdsghhrh
    </p>
  </section>
  <section class="product">
    <h3>dd</h3>
    <p>zscsvdsvdsv</p>
  </section>
</art>`;
let m;

while ((m = regex.exec(str)) !== null) {
    // This is necessary to avoid infinite loops with zero-width matches
    if (m.index === regex.lastIndex) {
        regex.lastIndex++;
    }
    
    // The result can be accessed through the `m`-variable.
    m.forEach((match, groupIndex) => {
        console.log(`Found match, group ${groupIndex}: ${match}`);
    });
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

正则表达式,用于获取具有以javascript中的特定单词开头的类名称的html元素

正则表达式用于javascript中的特定代码

正则表达式用于javascript中的特定代码

将正则表达式用于元组嵌套列表的特定元素

元素之间的正则表达式用于特定字符

Python中的嵌套正则表达式,用于

JavaScript正则表达式用于特定模式

正则表达式用于从python句子中获取特定输出

正则表达式用于在电子邮件VBA中获取特定单词

JavaScript正则表达式中的多个嵌套匹配

MongoDB:数组中特定元素的正则表达式

正则表达式,用于验证JavaScript中的负数

在JavaScript正则表达式中返回多个元素

如何使用正则表达式在JavaScript中通过ID获取元素?

正则表达式排除javascript中的特定网站?

R / stringr:用于在字符串的特定部分中获取特定符号的正则表达式

正则表达式用于在嵌套括号内获取值

用于从 Google Analytics(分析)中的着陆页列表中获取特定页面的正则表达式

正则表达式用于嵌套分组

嵌套正则表达式用于域匹配

javascript中的正则表达式

正则表达式匹配和嵌套元素

嵌套XML元素的Python正则表达式

正则表达式-如何正确获取嵌套值

如何使用正则表达式获取嵌套组

正则表达式,用于捕获元素textContent

mongodb正则表达式用于列表的不同元素

灾难性的回溯;正则表达式,用于提取嵌套括号中的值

正则表达式,用于捕获嵌套括号中的值