正则匹配html内容

2023-02-28  本文已影响0人  姜治宇

分组捕获

1、(exp)

匹配exp,并捕获文本到自动命名的组里

2、(?<name>exp)

匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp)

3、(?:exp)

匹配exp,但不捕获匹配的文本

位置指定

1、(?=exp)

匹配exp前面的位置

2、(?<=exp)

匹配exp后面的位置

3、(?!exp)

匹配后面跟的不是exp的位置

4、(?<!exp)

匹配前面不是exp的位置

实战

我们比较常用的,是分组捕获里面的1和3,结合位置指定的1和2,位置指定最为重要。
比如要提取a标签的href内容,我们必须知道待提取内容的前、后都是什么?

//正则 ?<= 和 ?= 用法
const str = '<a target=_blank href="www.baidu.com">百度一下</a>';
const reg = /(?<=(?:href=")).+(?=(?:">))/;
const arr = str.match(reg);
if(arr && arr[0]){
    console.log(arr[0]);
}

参考文章:https://www.cnblogs.com/mol1995/p/10927279.html

上一篇下一篇

猜你喜欢

热点阅读