这段时间比较忙了,没啥空折腾golang。。。再加上前段业余时间基本都在改用python写的小东西,陆陆续续在调整和fix bug。。。
昨晚抽空又练习了一下golang的正则,其正则表达式的语法与perl和python是一样的。。。所以如果已经熟悉正则语法了,还是很容易上手的,
昨晚练习后,最后写了个小功能,去除网页的HTML等相关代码,费话不多说了,直接上码:
package main
import (
"fmt"
"io/ioutil"
"net/http"
"regexp"
"strings"
)
func main() {
resp, err := http.Get("http://www.baidu.com")
// resp, err := http.Get("http://www.163.com")
if err != nil {
fmt.Println("http get error.")
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Println("http read error")
}
src := string(body)
//将HTML标签全转换成小写
re, _ := regexp.Compile("\\<[\\S\\s]+?\\>")
src = re.ReplaceAllStringFunc(src, strings.ToLower)
//去除STYLE
re, _ = regexp.Compile("\\<style[\\S\\s]+?\\</style\\>")
src = re.ReplaceAllString(src, "")
//去除SCRIPT
re, _ = regexp.Compile("\\<script[\\S\\s]+?\\</script\\>")
src = re.ReplaceAllString(src, "")
//去除所有尖括号内的HTML代码,并换成换行符
re, _ = regexp.Compile("\\<[\\S\\s]+?\\>")
src = re.ReplaceAllString(src, "\n")
//去除连续的换行符
re, _ = regexp.Compile("\\s{2,}")
src = re.ReplaceAllString(src, "\n")
fmt.Println(strings.TrimSpace(src))
}
分享到:
相关推荐
Golang,通常被称为Go语言,是一种由谷歌开发的编程语言。它以简洁、高效、安全著称,并且非常适合构建大规模的分布式系统和微服务。Go语言的一些主要特点包括: 1. **简洁性**:Go语言的语法非常简单,易于学习。 ...
在Go语言(Golang)中,正则表达式是通过`regexp`包来实现的,它提供了丰富的功能,使得开发者能够方便地处理字符串中的模式匹配问题。本篇文章将深入探讨Go语言中的正则表达式,帮助你更好地理解和使用这个强大的...
《Golang项目实战:bilibili后台代码优化》_哔哩哔哩_bilibili_go-commo_bilibili-optimization
除了使用`regexp`包提供的函数外,还可以使用`Regexp`对象的方法,如`FindString`用于查找字符串中匹配正则表达式的子串,`Match`用于检测字符串是否匹配正则表达式等。 Go语言的正则表达式还有捕获组(用括号表示...
golang:books:: 《Go语言编程入门与实战技巧》-黄靖钧 《Go语言核心编程》-李文塔 《Go编发编程实战》-郝林 《Go语言编程》-许式伟 《Go程序设计语言》-译本 Go语言圣经 《Go语言学习笔记》-雨痕 - 柴树杉,曹春晖 ...
golang-re2 介绍 目的是当你想提高谷歌正则表达式库re2的wrapper library regexp包的性能时,通过替换来解决。 执照 在 LICENSE 中列出(麻省理工学院许可证 (MIT)) 安装 C++制作的RE2和RE2必须预先安装。另外,CRE...
Golang并发模型:轻松入门流水线模型 Golang并发模型:轻松入门流水线FAN模式 Golang并发模型:合理退出并发协程 Golang并发模型:轻松入门select Golang并发模型:select进阶 Golang并发模型:轻松入门协程池 ...
在本文中,将介绍如何使用Go语言(通常称为Golang)编写程序以使用正则表达式解析网页。Go语言以其简洁的语法和高效的性能被广泛应用于网络编程中。正则表达式是一种强大的文本处理工具,常用于匹配和操作字符串。 ...
Golang-Blockchain:利用Golang并发的区块链代码
golang常用库:配置文件解析库-viper使用 golang常用库:操作数据库的orm框架-gorm基本使用 一:字段映射-模型定义 gorm中通常用struct来映射字段. gorm教程中叫模型定义 比如我们定义一个模型Model: type User ...
Golang JSON到TypeScript模型转换器 安装 命令行工具: go get github.com/tkrajina/typescriptify-golang-structs/tscriptify 图书馆: go get github.com/tkrajina/typescriptify-golang-structs 用法 使用...
Google Cloud Platform Go示例 该存储库包含用Go语言编写的示例代码,用于演示Google Cloud Platform。 一些示例在上具有随附的指南。 有关详细信息,请参见相应的自述文件。取决于样品将您需要的任何代码从该存储库...
在本项目中,“golang-projects:golang程序源代码”显然是一个关于Go语言编程的开源项目,主要包含Golang的源代码。Go语言,又称Golang,是Google开发的一种静态类型的、编译型的、并发型且具有垃圾回收功能的编程...
golang 中的 Fluent 正则表达式是的的一个端口 要求 高朗使用 1.4.2 版创建和测试 安装 Flux 可通过go get github.com/alexanderbartels/flux 例子 这个简单的例子说明了您将使用flux 的方式及其流畅的界面来构建...
Golang学习笔记 Golang的电子笔记,方便以后查阅,建立知识体系查漏补缺 Golang学习中遇到比较好的网站汇总:煎鱼的博客: ://eddycjy.com/ 《 Go语言标准库》(查阅非常方便): : Golang入门教程: : Golang...
内容概要:golang搭建仿商城后管理系统,静态资源(html,js,images,css,) 适用人群:学习golang语言,同时使用 gin框架搭建 仿站后管理系统。ps:同时也是关注我学习笔记的各位同行者。 使用场景:搭建仿商城...
golang常用库:配置文件解析库-viper使用 golang常用库:操作数据库的orm框架-gorm基本使用 一:golang自带路由介绍 golang自带路由库 http.ServerMux ,实际上是一个 map[string]Handler,是请求的url路径和该url...
在Golang的世界里,开发人员经常利用各种工具库来提高代码效率和质量。这些工具库涵盖了广泛的功能领域,从网络编程到数据处理,再到数据库操作。以下是对标题和描述中提及的一些关键知识点的详细说明: 1. **...