判断是否匹配:regexp 包中含有三个函数用来判断是否匹配,如果匹配,则返回 true,否则返回 false
func Match(pattern string, b []byte) (matched bool, err error)
func MatchReader(pattern string, r io.RuneReader) (matched bool, err error)
func MatchString(pattern string, s string) (matched bool, err error)
上面 3 个函数的作用都是判断 pattern 是否和输入源匹配,若匹配,就返回 true,如果解析正则出错,则返回 error。
例子:
if len(os.Args) == 1 {
    fmt.Println("Usage: regexp [string]")
    os.Exit(1)
} else if m, _ := regexp.MatchString("^[0-9]+$", os.Args[1]); m {
    fmt.Println("是数字")
} else {
    fmt.Println("不是数字")
}   //爬虫爬取内容后处理
    resp, err := http.Get("https://baidu.com")
    if err != nil {
        fmt.Println("http get error", err)
    }
    defer resp.Body.Close()
    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        fmt.Println("http read error")
        return
    }
    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))