go語言之正則表示式
阿新 • • 發佈:2018-11-14
go語言之正則表示式
//regexp package main import ( "fmt" "regexp" ) func main() { //需要匹配的模式 //reg := regexp.MustCompile("\\w+") 正則表示式中的\需要轉義 reg := regexp.MustCompile(`^z.*1$`) //返回匹配到的結果 result := reg.FindAllString("zhangsan1", -1) fmt.Printf("%v\n", result) //演示一個匹配不到的例子 reg1 := regexp.MustCompile(`^z(.*)1$`) result1 := reg1.FindAllString("zhangsand", -1) fmt.Printf("%v\n", result1) reg2 := regexp.MustCompile(`^z(.{1})(.{1})(.*)1$`) result2 := reg2.FindAllString("zhangsan1", -1) fmt.Printf("%v\n", result2) }
// simple_crawler package main import ( "fmt" "io/ioutil" "net/http" "regexp" ) func main() { url := "https://movie.douban.com/subject/24751763/" resp, err := http.Get(url) if err != nil { panic(err) } defer resp.Body.Close() sHtml, _ := ioutil.ReadAll(resp.Body) reg := regexp.MustCompile(`<span\s*property="v:itemreviewed">(.*)</span>`) result := reg.FindAllStringSubmatch(string(sHtml), -1) fmt.Println(result[0][1]) reg1 := regexp.MustCompile(`<strong\s*class="ll\s*rating_num"\s*property="v:average">(.*)</strong>`) result1 := reg1.FindAllStringSubmatch(string(sHtml), -1) fmt.Println(result1[0][1]) }