提取网页标签数据:

举例: 提取

之中的数据

1)

(.*)

–> 可以提取div标签的内容

2) 对于 div 标签中 含有多行内容清空:开启

正则表达式:(?s:(.*?))

(?s)是正则表达式模式修饰符,即Singleline单行模式,表示更改.的含义,使他与每一个字符匹配包括换行符\n
(.*?)是一个单元分组,“.”匹配任意字符 “*?”表示重复>=0次匹配

这个语法比较难不需要过度研究,只需要指导将 (?s:(.*?)) 放置于特征内部可以提取所有内容即可

package main

import (
“regexp”
“fmt”
)

func main() {
str := `<html lang=”zh-CN”>
<div>hello regexp</div>
<div>hello 2</div>
<div>hello 890</div>
<div>hello 664</div>
<div>
2块钱啥时候还?
过了年再说吧!
刚买了车,没钱。。。
</div>

<body>身体</body>
</html>`
// 解析、编译正则表达式
//ret := regexp.MustCompile(`<div>(.*)</div>`)
ret := regexp.MustCompile(`<div>(?s:(.*?))</div>`)

// 提取需要的信息
alls := ret.FindAllStringSubmatch(str, -1)
fmt.Println(“alls:”, alls)
for _, one := range alls {
fmt.Println(“one[0]=”, one[0])
fmt.Println(“one[1]=”, one[1])
}
}