Golang 正则表达式(regexp)

这篇博客介绍了Go语言中内置的`regexp`包,提供了正则表达式的常见使用示例,包括编译正则表达式的方法及其区别,以及处理byte与string的方法。文章通过代码示例展示了如何在Go中进行正则匹配操作。
摘要由CSDN通过智能技术生成

Go内置了(regexp包)对正则表达式的支持,这里是一般的正则表达式常规用法的例子。

示例:

    package main

import (
    "bytes"
    "fmt"
    "regexp"
)

func main() {
    //是否匹配字符串
    // .匹配任意一个字符 ,*匹配零个或多个 ,优先匹配更多(贪婪)
    match, _ := regexp.MatchString("H(.*)d!", "Hello World!")
    fmt.Println(match) //true
    //或
    match, _ = regexp.Match("H(.*)d!", []byte("Hello World!"))
    fmt.Println(match) //true
    //或通过`Compile`来使用一个优化过的正则对象
    r, _ := regexp.Compile("H(.*)d!")
    fmt.Println(r.MatchString("Hello World!")) //true

    // 这个方法返回匹配的子串
    fmt.Println(r.FindString("Hello World! world")) //Hello World!
    //同上
    fmt.Println(string(r.Find([]byte("Hello World!")))) //Hello World!

    // 这个方法查找第一次匹配的索引
    // 的起始索引和结束索引,而不是匹配的字符串
    fmt.Println(r.FindStringIndex("Hello World! world")) //[0 12]

    
    // 这个方法返回全局匹配的字符串和局部匹配的字符,匹配最大的子字符串一次。
    // 它和r.FindAllStringSubmatch("Hello World! world",1) 等价。  比如
    // 这里会返回匹配`H(.*)d!`的字符串
    // 和匹配`(.*)`的字符串
    fmt.Println(r.FindStringSubmatch("Hello World! world")) //[Hello World! ello Worl]

    // 和上面的方法一样,不同的是返回全局匹配和局部匹配的
    // 起始索引和结束索引
    fmt.Println(r.FindStringSubmatchIndex("Hello World! world")) //[0 12 1 10]
    // 这个方法返回所有正则匹配的字符,不仅仅是第一个
    fmt.Println(r.FindAl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值