golang 正規表示式的使用和問題

2022-03-07 11:06:35 字數 1203 閱讀 1522

一、正規表示式多匹配+group

源字串如下,要提取其中的 11.html/11/北京市

北京市

天津市

golang**如下,findallsubmatch引數-1是取所有匹配的字串(也可以填數字取具體個數),其中str[0]是匹配的總字串,str[1]=group[1]

reg, _ := regexp.compile("([\u4e00-\u9fa5]+)")

allstr := reg.findallsubmatch(byte(html), -1)

for _, str := range allstr

二、正規表示式替換

想實現的效果,把下面

[江蘇省(320000)|prov|0|][蘇州市(320500)|city|0|][吳江區(320509)|area|0|][雙板橋路()|road|1|52號$]附近
轉換為:

江蘇省蘇州市吳江區雙板橋路52號附近
下面是正確的golang**

reg := regexp.mustcompile("\\[([^\\(]+)\\(\\d*\\)\\|\\w*\\|\\d\\|([^\\]\\$]*)\\$?\\]")

fmt.println(dis.address)

dis.address = reg.replaceallstring(dis.address, "$1$2")

fmt.println(dis.address)

下面的**是同樣的效果下和regexbuddy的語法,和golang的語法主要區別在:轉義符要多乙個\

總結如下

正常的表示式中\w是能識別中文,但是golang似乎並不可以,需要用[\u4e00-\u9fa5]顯示指定

golang的轉義符要用\\

\w \d 等常用的也要用 \\w \\d 來表示

regexp.mustcompile(``)這種寫法還有待嘗試

Golang 正規表示式

常用語法 golang of regexp 匹配任意換行符以外的任意字元 w 匹配字母 下劃線 漢字 數字 s 匹配任意的空白符 d 匹配數字 b 匹配單詞的開始或結束 匹配字串的開始 匹配字串的結束 重複零次或更多次 重複一次或更多次 重複零次或一次 重複n次 重複n次或更多次 重複n,m次之間 ...

Golang 正規表示式

正規表示式是一種進行模式匹配和文字操縱的複雜而又強大的工具。雖然正規表示式比純粹的文字匹配效率低,但是它卻更靈活。按照它的語法規則,隨需構造出的匹配模式就能夠從原始文字中篩選出幾乎任何你想要得到的字元組合。go語言通過regexp標準包為正規表示式提供了官方支援,如果你已經使用過其他程式語言提供的正...

golang正規表示式

今天用原生的go嘗試寫了下爬取頁面資料,並正則匹配需要的資料。邏輯比較簡單,就是啟動了幾十個協程進行頁面爬取,然後進行正則匹配。匹配除換行符以外的任意字元,要匹配換行可以用 s s d d w w 進行匹配 匹配除換行符以外的任意字元 w 匹配字母或數字或下劃線或漢字 等價於 a za z0 9 s...