Go 正規表示式庫之 commonregex

gocloudcoder發表於2021-05-31

Go 正規表示式庫之 commonregex

為什麼使用 commonregex?

在開發的時候,我們會遇到一些需要使用字串的匹配和查詢的任務。我們可以使用正規表示式去提取感興趣的資料,如手機號碼,郵件,超連結等。但是正規表示式寫起來費時費力,而且容易遺忘。commonregex 它提供了很多內建的正規表示式,開箱即用,能極大的提高開發體驗和開發效率。

commonregex 簡介

提供經常使用的正規表示式的集合。

它提供了這些作為獲取與特定模式對應的匹配字串的簡單函式。

  • 日期
  • 時間
  • 電話號碼
  • 超連結
  • 郵件地址
  • IPv4/IPv6/IP 地址
  • 價格
  • 十六進位制顏色值
  • 信用卡卡號
  • 10/13 位 ISBN
  • 郵政編碼
  • MD5
  • SHA1
  • SHA256
  • GUID,全域性唯一標識
  • Git 倉庫地址

快速使用 commonregex

安裝 commonregex

go get -u github.com/mingrammer/commonregex

簡單使用 commonregex

package main

import (
  "fmt"

  cregex "github.com/mingrammer/commonregex"
)

func main() {
  text := `John, please get that article on www.linkedin.com to me by 5:00PM on Jan 9th 2012. 4:00 would be ideal, actually. If you have any questions, You can reach me at (519)-236-2723x341 or get in touch with my associate at harold.smith@gmail.com`

  dateList := cregex.Date(text)
  timeList := cregex.Time(text)
  linkList := cregex.Links(text)
  phoneList := cregex.PhonesWithExts(text)
  emailList := cregex.Emails(text)

  fmt.Println("date list:", dateList)
  fmt.Println("time list:", timeList)
  fmt.Println("link list:", linkList)
  fmt.Println("phone list:", phoneList)
  fmt.Println("email list:", emailList)
}

執行結果:

date list: [Jan 9th 2012]
time list: [5:00PM 4:00 ]
link list: [www.linkedin.com harold.smith@gmail.com]
phone list: [(519)-236-2723x341]
email list: [harold.smith@gmail.com]

commonregex提供的 API 非常易於使用,呼叫相應的類別方法返回一段文字中符合這些格式的字串列表。

上面依次從text獲取日期列表時間列表超連結列表電話號碼列表電子郵件列表

總結

commonregex 提供了常用的正規表示式的函式,足以應付我們日常開發場景,能較大的提高我們的開發效率。

參考資料

更多原創文章乾貨分享,請關注公眾號
  • Go 正規表示式庫之 commonregex
  • 加微信實戰群請加微信(註明:實戰群):gocnio

相關文章