第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

Go語(yǔ)言之正則表達(dá)式

標(biāo)簽:
Java

[TOC]

Go语言正则表达式

方式一:使用Compile

package mainimport (    "fmt"    "regexp")const text = "my email is k8sAndDocker@google.com"func main() {    //re 是 正则表达式的匹配器    re, err := regexp.Compile("k8sAndDocker@google.com")    if err != nil {        panic(err)    }    result := re.FindString(text)    fmt.Println("result:\t", result)}

运行结果:

result:  k8sAndDocker@google.comProcess finished with exit code 0

==此方法式,存在的问题?==  
    Compile方法中的正则表达式,Go语言不知道是否正确,有可能用户写的正则表达式是错误的。

方式二:使用MustCompile方法

==好处就是,参数必须是正确的正则表达式==

例子1

package mainimport (    "fmt"    "regexp")const text_1 = "my email is k8sAndDocker@google.com"func main() {    //目前的正则表达式,仅仅是匹配一个值,k8sAndDocker@google.com    re := regexp.MustCompile("k8sAndDocker@google.com")    match := re.FindString(text_1)    fmt.Println(match)}

运行结果:

k8sAndDocker@google.comProcess finished with exit code 0

==问题 .+ 与 .*的区别==

. 表示可以匹配任何字符  .+ 表示可以匹配1以上的字符,也就是说,只少有一个字符  .* 表示可以匹配0个以上的字符,也就是说,0个以上字符  其实,+,* 都是匹配的数量

例子2

package mainimport (    "fmt"    "regexp")const text_1 = "my email is k8sAndDocker@google.com"func main() {    //目前的正则表达式,仅仅是匹配一个值,k8sAndDocker@google.com    re := regexp.MustCompile("k8sAndDocker@google.com")    match := re.FindString(text_1)    fmt.Println(match)}

运行结果:

k8sAndDocker@google.comProcess finished with exit code 0

==如何匹配正则表达式中一个点呢?==

如在点的前面,添加一个反斜杠\,  但是,Go语言会将反斜杠当做是转义字符,因此,需要添加两个反斜杠 \\.  同时,Go 语言,可以不使用"", 也可以使用反单引号,`` 来引用正则表达式,这样的话,就不需要反斜杠了,

例子3

package mainimport (    "fmt"    "regexp")const text_3 = "my email is k8sAndDocker@google.com"func main() {    //目前的正则表达式,仅仅是匹配一个值,k8sAndDocker@google.com    re := regexp.MustCompile(`.+@.+\..+`)    match := re.FindString(text_3)    fmt.Println(match)}

运行结果:

my email is k8sAndDocker@google.comProcess finished with exit code 0

==存在问题?==  
将这条语句全部打印出来,而不是仅仅符合要求的哪些字段

例子4

package mainimport (    "fmt"    "regexp")const text_4 = "my email is k8sAndDocker@google.com"func main() {    //只匹配小写字母,大写字母,数字,不允许有特殊符号    re := regexp.MustCompile(`[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+`)    match := re.FindString(text_4)    fmt.Println(match)}

运行结果:

k8sAndDocker@google.comProcess finished with exit code 0

例子5  匹配多个时,如何处理?

package mainimport (    "fmt"    "regexp")const text_5 = `    my email is k8sAndDocker@google.com    my email is spark@qq.com    my email is hadoop@126.com    my email is kafka@163.com    my email is docker@163docker.com.cn`func main() {    //在[]里,  . 不需要 添加 转义字符    re := regexp.MustCompile(`[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+`)    //-1 表示,要匹配所有满足条件的词    match := re.FindAllString(text_5, -1)    fmt.Println(match)}

运行结果:

[k8sAndDocker@google.com spark@qq.com hadoop@126.com kafka@163.com docker@163docker.com]Process finished with exit code 0

例子6,如何提取出 名字,域名呢?

==正则表达式具有提取功能,只需要将要提取的字符,用小括号 括起来就可以了==

package mainimport (    "fmt"    "regexp")const text_6 = `    my email is k8sAndDocker@google.com    my email is spark@qq.com    my email is hadoop@126.com    my email is kafka@163.com    my email is docker@163docker.com.cn`func main() {    //在[]里,  . 不需要 添加 转义字符    re := regexp.MustCompile(`([a-zA-Z0-9]+)@([a-zA-Z0-9]+)(\.[a-zA-Z0-9.]+)`)    //-1 表示,要匹配所有满足条件的词    match := re.FindAllStringSubmatch(text_6, -1)    for _, value := range match {        fmt.Println(value)    }}

运行结果:

[k8sAndDocker@google.com k8sAndDocker google .com][spark@qq.com spark qq .com][hadoop@126.com hadoop 126 .com][kafka@163.com kafka 163 .com][docker@163docker.com.cn docker 163docker .com.cn]Process finished with exit code 0


   
   

   
   

   
   

   

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶(hù)
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專(zhuān)欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消