首頁 > 後端開發 > Golang > 主體

在Go中使用正規表示式

咔咔
發布: 2020-12-01 15:09:29
原創
1999 人瀏覽過

本文將帶大家了解一下在Go中如何使用正規表示式

一、示範案例

在這個案例中宣告了常數text

然後使用了regexp這個套件的regexp.Compile這個方法。

這種方式是不確定使用者輸入的值是否符合符合規則。

當然也可以看到結果是回傳了我們需要的資料。 在Go中使用正規表示式

但是在一般情況下,如果確定了使用者輸入的內容是正確的是完全符合的就可以使用下方案例。

在這個案例中可以看到regexp.MustCompile使用了這個方法,並且傳回的值也是一樣的。

在Go中使用正規表示式
當使用者確定輸入的是完全符合時可以使用

#這個方法沒有回傳錯誤,但是在自己的內部方法進行了異常處理。

根據註解可以得知使用這個方法給的參數表達式是不必須可以解析的,如果不能解析則會拋出例外。

在Go中使用正規表示式
在這裡插入圖片描述

#二、正規比對

# #接下來我們使用正規表示, 也就是在上圖方法中進行正規表示式的匹配。

案例跟上圖使用的一致性都是用來匹配郵件信箱。
在Go中使用正規表示式那麼接下來先寫第一版。
可以看到回傳結果就是我們想要的。

關於正規表示式的寫法這部分內容在這裡就說明了, 本文主要是針對go如何使用正規表示式。

使用正規的第一個版本在Go中使用正規表示式
此時就會反映出第一個問題,那就是
FindString

這個方法只能匹配一個值。

反映出的第一個問題那要如何匹配多個值呢!請看下方案例

三、匹配多個值

######可以看到返回結果是將所有可以匹配的郵箱都給了匹配出來。 ######符合多個值需要使用###FindAllString###這個方法。 ###

第一個參數為匹配的字符,第二個參數是尋找多少個,-1是全找

在Go中使用正規表示式
匹配多個值的演示案例

在go中提供了一個非常好的方式可以直接將郵箱名稱、郵箱網域名稱、和郵箱後綴給提取出來,那麼應該怎麼做呢!

四、正規表示式提取內容

#在這裡就不能繼續使用上述案例的方法了,需要使用FindAllStringSubmatch這個方法

在Go中使用正規表示式
正規表示式來擷取內容

在這個方法中可以得知傳回的是一個二維的字串,從上圖的回傳結果也可以得知回傳的就是一個二維的字串。

在Go中使用正規表示式
查看回傳結果

既然傳回的是二維的字串切片,那麼我們就可以進行循環來取得每一個提取出來的內容。

可以看到返回了四個匹配,第一個是完整的,後邊的三個都是我們獲取的內容。

在Go中使用正規表示式
返回每一個切片

#透過以上四個案例簡單的了解一下在Go中如何使用正規表示式,進行了模擬了幾個場景,和go中的正規表示式套件的使用。

這個案例也算是對go的一個練習,沒有多深的內容,主要就是關於正則包的使用,最重要的就是最後一個案例,這種正則表達式提取內容在爬蟲的項目中是非常常見的。

堅持學習、堅持寫博、堅持分享是咔咔從業以來一直所秉持的信念。希望在偌大互聯網中咔咔的文章能帶給你一絲絲幫助。我是咔咔,下期見。

#推薦:《golang教程

》###

以上是在Go中使用正規表示式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
go
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板