go的string正則匹配 go語言正規表示式

2021-10-13 08:33:25 字數 1199 閱讀 5590

我們前兩節課爬取珍愛網的時候,用到了很多正規表示式去匹配城市列表、城市、使用者資訊,其實除了正規表示式去匹配,還可以利用goquery和xpath第三方庫匹配有用資訊。而我利用了更優雅的正規表示式匹配。下來大概介紹下正規表示式。

比如我們匹配城市列表的時候,會取匹配所有城市的url,如下:

]*>([^

[0-9a-z]+表示匹配小寫字母或者數字至少一次,[>]*表示匹配非》的字元任意次,然後[

通過以下方式就可以拿到url和city

const (

citylistreg = `]*>([^`

compile := regexp.mustcompile(citylistreg)

submatch := compile.findallsubmatch(contents, -1)

for _, m := range submatch ]+`)

fmt.println(reg.findallstring(testtext, -1)) // ----->[你好]

reg = regexp.mustcompile(`[\p]+`)

fmt.println(reg.findallstring(testtext, -1)) // ----->["hello " ", i li golang!"]

fmt.printf("%q\n", reg.findallstring(testtext, -1)) // ----->["hello " ", i lm golang!"]

//email

reg = regexp.mustcompile(`\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*`)

fmt.println(reg.matchstring("[email protected]"))

//使用者名稱密碼:

reg = regexp.mustcompile(`[a-za-z]|\w`)

fmt.println(reg.matchstring("w_dy_246"))

執行結果如下:

p([a-z]+)ch

a a smallsoup

[你好嗎]

[hello , i like golang!]

["hello " ", i like golang!"]

true

true

process finished with exit code 0

go 正則匹配郵箱

w 匹配字母數字及下劃線 var reemail 1 9 d qq.com 郵箱 reemail w w com 郵箱 reemail w w a z a z 郵箱 w 表示字母字元或者.其中乙個出現 1到多次 a z 表示a z任意其中乙個字元 出現2到3次 a z 表示分組 a到z中任意乙個出現...

go中的string操作

strings 判斷字串s是否以prefix開頭 strings.hasprefix s string,preffix string bool 判斷字串s是否以suffix結尾 stirngs.hassuffix s string,suffix string bool 判斷str在s中首次出現的位置...

GO語言 String 方法的思考

對於定於了string 方法的型別,預設輸出的時候會呼叫該方法,實現字串的列印。例如下面 package main import fmt type man struct func m man string string func main 輸出 my name is sns然而,如果使用func m...