alltolove 发表于 2017-4-5 13:50:35

正则表达式的用法

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))
}
页: [1]
查看完整版本: 正则表达式的用法