gpt4 book ai didi

javascript - 捕获
 
标签之间的所有内容

转载 作者:行者123 更新时间:2023-12-01 01:14:58 30 4
gpt4 key购买 nike

我正在读取 .html 文件:

const htmlin = String(fs.readFileSync(inputHtml) || '');

const splitted = htmlin.split(/<pre.*>/);
splitted.shift();

const justPost = splitted.join('').split('</pre>');
justPost.pop();

但我正在寻找一种方法来匹配其中的所有文本

aaa <pre> xxx </pre> bbb <pre> foo </pre> ccc

并且还匹配外面的文本。这样我就可以获得两个数组:

['aaa ', ' bbb ', ' ccc']

[' xxx ', ' foo ']

如何使用正则表达式或其他方法来做到这一点?

最佳答案

一种方法是使用正则表达式替换函数和捕获组。

<pre>(.*?)(?=<\/pre>)|(?:^|<\/pre>)(.*?)(?=$|<pre>)
  • <pre>(.*?)(?=<\/pre>) - 匹配 pre 之间的文本标签。 (g1)
  • (?:^|<\/pre>)(.*?)(?=$|<pre>) - 匹配 pre 中的文本标签。 (g2)

let str = `aaa <pre> xxx </pre> bbb <pre> foo </pre> ccc`
let inner = []
let outer = []

let op = str.replace(/<pre>(.*?)(?=<\/pre>)|(?:^|<\/pre>)(.*?)(?=$|<pre>)/g, function (match,g1,g2){
if(g1){
inner.push(g1.trim())
}
if(g2){
outer.push(g2.trim())
}
return match
})

console.log(outer)
console.log(inner)

关于javascript - 捕获 <pre> </pre> 标签之间的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54848648/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com