草庐IT

regex_extract

全部标签

regex - 重复的、任意的捕获组

给定一个字符串,例如:static_string.name__john.id__6.foo__bar.final_string但是对于任意数量的label__value.组件,我如何重复捕获组,将它们拆分为标签和值,并捕获终止的final_string?对于以上我想要[name,john,id,6,foo,bar,final_string]当我事先不知道label__value.组件的数量时,这样的事情是否可能?如果重要的话,这适用于golang/RE2。更新:我没有在几行代码中做到这一点的奢侈,而是需要在一个正则表达式中做到这一点。正则表达式在我无法控制的应用程序的配置文件中定义,因

regex - 如何匹配包含unicode字符的完整字符串?

我想验证一个字符串,例如姓名。没有空格的字符串。对于普通的Ascii,以下正则表达式就足够了"^\w+$",其中^和$考虑了整个字符串。我尝试使用\pL字符类为支持多种语言的unicode字符实现相同的结果。但由于某种原因$不能帮助匹配字符串的结尾。我究竟做错了什么?代码示例在这里:https://play.golang.org/p/SPDEbWmqx0N我从以下位置复制粘贴的随机字符:http://www.columbia.edu/~fdc/utf8/go版本go1.12.5darwin/amd64packagemainimport("fmt""regexp")funcmain(){

戈朗 : file extracted from tar throws permissions error

我已经编写了以下代码来对文件进行压缩,代码可以正常工作,但奇怪的是,如果我解压缩存档,文件权限就会消失,所以我无法读取它,除非我随后对文件进行chmod:packagemainimport("archive/tar""io/ioutil""log""os")funcmain(){c,err:=os.Create("/path/to/tar/file/test.tar")iferr!=nil{log.Fatalln(err)}tw:=tar.NewWriter(c)f,err:=os.Open("sample.txt")iferr!=nil{log.Fatalln(err)}fi,err

regex - Golang 正则表达式引用子匹配

我正在尝试从正则表达式中提取子匹配值,但如果有必要,请忽略一组引号。到目前为止我有这个:网址:http://play.golang.org/p/lcKLKmi1Elpackagemainimport"fmt"import"regexp"funcmain(){authRegexp:=regexp.MustCompile("^token=(?:\"(.*)\"|(.*))$")matches:=authRegexp.FindStringSubmatch("token=llll")fmt.Println("MATCHES",matches,len(matches))matches=authR

regex - 用于密码检查的 PHP 正则表达式模式在 Go 中不起作用

看完thispost,我知道我需要使用反引号(`)来包装我的正则表达式模式。现在我有正则表达式模式/^(?=^.{8,}$)(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s)[0-9a-zA-Z!@#$%^&*()]*$/检查密码模式是否正确。我已经用PHP对其进行了测试,它可以正常工作。但它在Go中不起作用。为什么?顺便问一下,反引号(`)变量的类型是什么?好像不是string类型。如何声明这个变量容器?测试代码packagemainimport("fmt""regexp")funcmain(){re:=regexp.MustCompile(`/^(?=^.

regex - 去正则表达式字符串验证

这个问题在这里已经有了答案:Matchexactstring(3个答案)关闭6年前。在go中有MatchString函数,可用于将字符串与正则表达式匹配,但是,如果找到与正则表达式匹配的子字符串,则该函数返回true。是否有一种方法/类似函数仅在匹配整个字符串时才返回true(例如,如果我有[0-9]{2}并且我的字符串为213,则返回值应该为false)。?还是应该从正则表达式字符串本身完成?

regex - 匹配时如何使一个词优先于其他词?

我有以下列表。IDAllStatuses1001{failed|processing|success}1002{failed}1003{success|failed}1004{processing|success}1005{failed|processing}我的需求是单独显示最乐观的状态。像这样IDBestStatus1001success1002failed1003success1004success1005processing有没有一种方法我可以用一个正则表达式查询来做到这一点,而不是说按顺序检查每个查询并返回我最坏的情况是三个正则表达式检查最终状态最乐观的状态?

regex - 如何制作重复捕获组?

我正在尝试解析以下字符串:`%%%First%%%part1%%%Second%%%part2`这一直持续到未知数量的部分......例如Third,Fourth,Another,Car,Airplane,etc...都被"%%%Something%%%"隔开我有:packagemainimport("fmt""regexp")funcmain(){reg:=regexp.MustCompile(`(?P%%%.*%%%)+`)match:=reg.FindStringSubmatch(`%%%First%%%part1%%%Second%%%part2`)iflen(match)==

regex - 使用 Golang 正则表达式查找一个整数后跟一个字符串

我想找到一个整数后跟术语“价格:”,无论是在输出中,我只需要打印必须排除术语“价格:”的整数。现在,我的代码是这样的,输出是[Price:100],但我只需要输出100。packagemainimport("regexp""fmt")conststr="Somestrings.Price:100$.Somestrings123"funcmain(){re:=regexp.MustCompile("Price:[[:space:]][0-9]+")fmt.Println(re.FindAllString(str,-1))} 最佳答案

regex - 带行首的正则表达式

我想使用匹配文本中一行开头的正则表达式。出于某种原因,^不起作用,请看这个失败的测试:funcTestNewLine(t*testing.T){re:=regexp.MustCompile("^bar")match:=re.FindString("foo\nbar\nbaz")assert.Equal(t,"bar",match)}我错过了什么? 最佳答案 您必须为正则表达式评估启用多行模式标志。试试这个:funcTestNewLine(t*testing.T){re:=regexp.MustCompile("(?m)^(bar)"