GO正则单行模式网页标签提取
提取网页标签数据:
举例: 提取
之中的数据
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])
}
}