go語言中使用正則校驗需要用到regexp包
先介紹幾種常用的方法:
1、使用matchstring函式
regexp.matchstring(pattern string, s string) pattern為正規表示式,s為需要校驗的字元傳
例:match,_:=regexp.matchstring("p([a-z]+)ch","peddach") 返回的第乙個引數是bool型別即匹配結果,第二個引數是error型別
fmt.println(match) //結果為true
2、使用 compile函式或mustcompile函式
它們的區別是compile返回兩個引數*regexp,error型別,而mustcompile只返回*regexp型別
func compile(expr string) (*regexp, error) {}
func mustcompile(str string) *regexp {}
它們的作用是將正規表示式進行編譯,返回優化的 regexp 結構體,該結構體有需多方法。
例r,_:=regexp.compile("p([a-z]+)ch")
b:=r.matchstring("peach")
fmt.println(b) //結果為true
或
r1:=regexp.mustcompile("p([a-z]+)ch")
b1:r1.matchstring("peach")
fmt.println(b) //結果為true
3、regexp結構體中一些常用的方法
r,_:=regexp.compile("p([a-z]+)ch")
fmt.println(r.matchstring("peach")) //j結果:true
//查詢匹配的字串
fmt.println(r.findstring("peach punch")) //列印結果:peach
//查詢匹配字串開始和結束位置的索引,而不是匹配內容[0 5]
fmt.println(r.findstringindex("peach punch")) //列印結果: [0 5]
//返回完全匹配和區域性匹配的字串,例如,這裡會返回 p([a-z]+)ch 和 `([a-z]+) 的資訊
fmt.println(r.findstringsubmatch("peach punch")) //列印結果:[peach ea]
//返回完全匹配和區域性匹配的索引位置
fmt.println(r.findstringsubmatchindex("peach punch")) //列印結果: [0 5 1 3]
//返回所有的匹配項,而不僅僅是首次匹配項。正整數用來限制匹配次數
fmt.println(r.findallstring("peach punch pinch",-1)) //列印結果:[peach punch pinch]
fmt.println(r.findallstring("peach punch pinch",2)) //匹配兩次 列印結果:[peach punch]
//返回所有的完全匹配和區域性匹配的索引位置
fmt.println(r.findallstringsubmatchindex("peach punch pinch",-1))
//列印結果: [[0 5 1 3] [6 11 7 9] [12 17 13 15]]
//上面的例子中,我們使用了字串作為引數,並使用了如 matchstring 這樣的方法。我們也可以提供 byte引數並將 string 從函式命中去掉。
fmt.println(r.match(byte("peach"))) //列印結果:true
r1:=regexp.mustcompile("p([a-z]+)ch")
//將匹配的結果,替換成新輸入的結果
fmt.println(r1.replaceallstring("a peach","")) //列印結果: a //func 變數允許傳遞匹配內容到乙個給定的函式中,
in:=byte("a peach")
out:=r1.replaceallfunc(in,bytes.toupper)
fmt.printf(string(out)) //列印結果: a peach
golang正則之命名分組
正則中有分組這個功能,在golang中也可以使用命名分組。場景還原如下 實現如下 str alice 20 alice gmail.com 使用命名分組,顯得更清晰 re regexp.mustcompile p a za z s p d s p w w w match re.findstrings...
正則校驗url
http s?複雜點為 var urlregex http https w w w u4e00 u9fa5 或 http https w w w w 當然這三種寫法不夠嚴謹,與 等明顯錯誤的url依然能匹配成功。下面是比較嚴謹的一些寫法 涉及對http,https協議,網域名稱,ip,port的校驗...
常用正則校驗
郵箱 param s export function isemail s test s 手機號碼 param s export function ismobile s test s 號碼 param s export function isphone s 0 9 test s url位址 param...