您好,登錄后才能下訂單哦!
這篇文章主要介紹在Go中使用正則表達式的示例,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
在這個案例中聲明了常量text
然后使用了regexp這個包的regexp.Compile這個方法。
這種方式是不確定用戶輸入的值是否符合匹配規則。
當然也可以看到結果是返回了我們需要的數據。
但是在一般情況下,如果確定了用戶輸入的內容是正確的是完全符合的就可以使用下方案例。
在這個案例中可以看到regexp.MustCompile
使用了這個方法,并且返回的值也是一樣的。
這個方法沒有返回錯誤,但是在自己的內部方法進行了異常處理。
根據注釋可以得知使用這個方法給的參數表達式是不必須可以解析的,如果不能解析則就會拋出異常。
接下來我們使用正則進行匹配, 也就是在上圖方法中進行正則表達式的匹配。
案例跟上圖使用的一致都是用來匹配郵箱。
那么接下來先寫第一版本。
可以看到返回結果就是我們想要的。
關于正則表達式的寫法這部分內容在這里就說明了, 本文主要是針對go如何使用正則表達式。
此時就會反映出第一個問題,那就是FindString
這個方法只能匹配一個值。
那如何匹配多個值呢!請看下方案例
可以看到返回結果是將所有可以匹配的郵箱都給匹配了出來。
匹配多個值需要使用FindAllString
這個方法。
第一個參數為匹配的字符,第二個參數是尋找多少個,-1是全找
在go中給提供了一種非常好的方式可以直接將郵箱名、郵箱域名、和郵箱后綴給提取出來,那么應該怎么做呢!
在這里就不能繼續使用上述案例的方法了,需要使用FindAllStringSubmatch
這個方法
在這個方法中可以得知返回的是一個二維的字符串,從上圖的返回結果也可以得知返回的就是一個二維的字符串。
既然返回的是二維的字符串切片,那么我們就可以進行循環來獲取每一個提取出來的內容。
可以看到返回了四個匹配,第一個就是完整的,后邊的三個都是我們獲取出來的內容。
以上是“在Go中使用正則表達式的示例”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。