Go語言中的正規表示式

2021-09-03 01:21:39 字數 2135 閱讀 3599

語法

說明表示式例項

一般字元

匹配自身

abc      匹配abc

.匹配任意除換行符「\n」外的字元

a.b\

轉義字元

a\.b    匹配a.b

[...]

字符集(字元類),對應的位置可以是字符集中任意字元,也可以給出範圍,如[abc]或[a-c],第乙個字元為^則表示匹配除括號外其他的字元,所有特殊字元再字符集中都失去原有的特殊意義,在字符集中如果要用到]、-或^,則可以在前面加上反斜槓,或者把]、-放在第乙個字元,把^放在非第乙個字元。

a[bcd]e    匹配:abe

aceade

\d數字:[0-9]

a\db              可以匹配a1b

\d非數字[^\d]

a\db              可以匹配abb

\s空白字元:[《空格》\t\r\n\f\v]

a\sb             可以匹配a b

\s非空白符:[^\s]

a\sb            可以匹配abb

\w單詞字元:[a-za-z0-9_]

a\wc               可以匹配abc

\w非單詞字元:[^\w]

a\wc               可以匹配a c

*匹配前乙個字元0次或無限次

abc*              可以匹配ab

abccc

+前乙個字元出現一次或者無限次

ab+               可以匹配ab

abbbb

?匹配前乙個字元一次或0次

abc?             可以匹配ab

abc匹配前乙個字元m次

a              可以匹配aa

m和n可以省略,如果省略m,則匹配前乙個字元0到n次,如果省略n,則匹配前乙個字元m至無限次

a[1,2]c           可以匹配ac

aac\a

匹配字串開頭

\aabc            可以匹配字串abc

\z匹配字串末尾

abc\z            可以匹配字串abc

\b匹配\w和\w之間

a\b!bc            可以匹配a!bc

\b[^\b]

a\bbc            可以匹配abc

||代表左右表示式任意匹配乙個,它總是先嘗試匹配左邊的表示式,一旦成功匹配則跳過匹配右側的正規表示式。如果|沒有被包括在()中,則他的範圍是整個正規表示式

abc|efg          可以匹配abc或efg

(...)

被括起來的表示式將作為分組,從表示式左邊開始每遇到乙個分組的左括號是「(」,編號+1。分組表示式作為乙個整體後面可以接數量名詞,表示式中的|只在該組中生效。

(abc)     可以匹配abcabc

a(123|456)b  可以匹配a456b

(?p...)

分組除了原有的編號外再指定乙個額外的別名

(?pabc)  匹配abcabc

\引號編號為的分組匹配到的字串

(\d)abc\1            可以匹配1abc1

(?p=name)

引用別名為的分組匹配到的字串

(?p\d)abc(?p=id)  可以匹配1abc1

(?:...)

(...)的不同版本,用於使用『|』或後接數量詞

(?:abc)  匹配abcabc

^匹配字串開頭,再多行模式中匹配每一行的開頭

^abc       匹配abc

$匹配字串結尾,再多行模式中匹配每一行的結尾

abc$         匹配abc

package main

import (

"fmt"

"regexp"

)func main()

//2)根據規則提取關鍵資訊,-1表示匹配所有項,正數為匹配項數

result := reg1.findallstringsubmatch(buf, -1)

fmt.println("result = ", result)

}

輸出:

go語言與正規表示式

編譯解析正規表示式 func mustcompile str string regexp返回值 編譯後,go語言能夠識別出來的乙個正規表示式結構體 利用正則從字串中提取有用資訊 func re regexp findallstringsubmatch s string n int string de...

Go語言正規表示式示例

複製 如下 package main import bytes import fmt import rwww.cppcns.comegexp func main 返回結果 true true peach 0 5 peach ea 0 5 1 3 peach punch pinch 0 5 1 3 6...

python語言中的正規表示式

序號 常用函式意義1 re.match regex content 按正規表示式regex規則,從頭開始匹配文字content 2result.group number 匹配子表示式,number表示子表示式在正規表示式中的位置 3result.span 輸出結果在正規表示式中的索引範圍 4修飾符r...