[Go] 在golang中使用正则表达式捕获子表达式

摘要:
正则匹配可以捕获()中子表达式的值。Linux中的grep命令无法捕获子表达式的值,但只能获取整个常规匹配内容packagemainimport“regexp”import“fmt”funcmin(){str:=`(.*?

正则匹配并且可以捕获到()这个里面的子表达式的值,linux的grep命令没办法捕获子表达式的值,只能获取到整条正则匹配的内容

package main

import "regexp"

import "fmt"

func main() {
    str := `(.*?)(d+)(.*?)d(.*)d`
    r := regexp.MustCompile(str)
    matchs := r.FindStringSubmatch("tao123shi5han567")
    for _, s := range matchs {
        fmt.Println(s)
    }
}

上面的正则中验证了.*是贪婪  .*?是非贪婪 ,下面匹配的字符串切片第一条是整条数据,后面的每一个对应正则括号里捕获的内容

tao@tao-PC:/var/www/html/go-project/test$ go run test.go
tao123shi5han567
tao
123
shi
han56

免责声明:文章转载自《[Go] 在golang中使用正则表达式捕获子表达式》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇矩阵理论 第八讲 矩阵函数的求法Loadrunner支持的IE版本下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

golang实现命令行程序的使用帮助

通过flag包我们可以很方便的实现命令行程序的参数标志,接下来我们来看看如何实现命令行程序的使用帮助,通常以参数标志-h或--help的形式来使用. 自动生成使用帮助 我们只需要声明其他参数标志,并执行解析,flag包会帮我们自动生成使用帮助. //main.go //输出2个数,输出较大的数 package main import (...

Golang压缩Jpeg图片和PNG图片

博主一直在维护一个导出PDF的服务,但是这个服务导出的PDF文件是真的巨大,动辄就上百MB。这里面主要是图片占据了大多数体积,所以考虑在导出前压缩一下图片。 Jpeg的图片压缩是很好做的,因为jpeg这个协议本身就支持调整图片质量的。在golang中,我们只需要使用标准库的image/jpeg,将图片从二进制数据解码后,降低质量再编码为二进制数据即可实现...

10,golang 错误处理,panic终止程序执行慎用

package mainimport ( "errors" "fmt" "io/ioutil")type error interface{ Error() string}/* golang中错误处理,在golang中错误是一种类型,默认如果没有发生错误,返回的错误值讲为nil if err !=nil{ something...

input输入框内容规范正则总结

input type=text 只能输入数字(去掉e和小数点): <input type="number" onkeydown="return event.keyCode !== 69" /> <input type="text" onkeydown="return ( event.ctrlKey || event.altKey...

C/C++调用Golang 一

C/C++调用Golang 一 (开发环境: 操作系统: windows 7 32位操作系统 C++: visual studio 2010 Golang:go version go1.9 windows/386 TDM-GCC-32) 用一个简单的例子演示如何在C++中调用golang程序。用golang编写一个简单的函数,编译成动态链接...

正则匹配 替换..追加..

这里都是以图片中的元素为例: 匹配出IMG标签中alt的值:1 Regex reg = new Regex(@"(?is)(?<=<img[^>]*alt="")[^""]*(?=""[^>]*>)"); 替换alt 内容: var replace = "alt='要替换的内容' "; source = Regex.Repl...