flysnow_org
我们在做爬虫的过程中,需要对爬取到的内容处理,比如说提取出我们需要的内容和文本,比如城市信息、人员信息等等,除了字符串查找外,使用正则匹配是比较优雅和方便的方案。
这篇文章,主要以提取URL中的日期和文章名为例,来举例说明如何使用正则提取字符串。
http://www.flysnow.org/2018/01/20/golang-goquery-examples-selector.html
()
通过上面URl的分析,我们定义正则表达式如下:
^http://www.flysnow.org/([d]{4})/([d]{2})/([d]{2})/([w-]+).html$
^$
[d]{4}
[w-]
()
下面看下完整的源代码。
flysnowRegexp := regexp.MustCompile(`^http://www.flysnow.org/([d]{4})/([d]{2})/([d]{2})/([w-]+).html$`)
params := flysnowRegexp.FindStringSubmatch("http://www.flysnow.org/2018/01/20/golang-goquery-examples-selector.html")
for _,param :=range params {
fmt.Println(param)
}
运行打印输出:
http://www.flysnow.org/2018/01/20/golang-goquery-examples-selector.html
2018
01
20
golang-goquery-examples-selector
FindStringSubmatch[]string
fmt.Println("年份为:"+params[1])
fmt.Println("月份为:"+params[2])
fmt.Println("天数为:"+params[3])
fmt.Println("文章名为:"+params[4])
这样我们需要的这篇文章的信息就被提取出来了。
正则对于处理文章很好用,关于更多Golang正则的使用,可以参考官方的这篇正则表达式的介绍。https://github.com/google/re2/wiki/Syntax
flysnow_org