ESSAY / NOTE

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]) } }