草庐IT

menta-regex

全部标签

regex - 如何匹配彼此相邻的括号?

我正在尝试解析Helm模板行。当我在同一行并排声明值时,我遇到了问题。例如,行image:"{{$.Values.image.repository}}:{{$.Values.image.tag}}"返回一个大匹配而不是两个括号内匹配。我尝试过使用(\-)?()?(.*):()\{\{()(\$)?.Values.*\}\}。我想获得两个值实例而不是一个大实例。 最佳答案 我猜你可能想写一个看起来有点类似于的表达式:\s*{{\s*\$?\.Values([^}]*)?\s*}}测试packagemainimport("regexp"

regex - 使用正则表达式在第一个空格/冒号上拆分/分隔字符串

我正在尝试使用正则表达式拆分字符串。例如:1213:14:15=>One-12,Two-13,Three-14:15我正在尝试使用以下正则表达式:^(?P.*)\\s(?P.*):\\s(?P.*)$因此,在我看来,“一”应该是第一个“空格”(\s)之前的值,然后直到下一个冒号(:),该值应该是“二”,之后的所有值都应该是“三”。但我得到的输出是:One-1213:,Two-14,Three-15注意:这是Golang类型的正则表达式,但我想这是一个一般的正则表达式问题。请帮我解决这个问题。 最佳答案 问题可能是它试图对最左边的模式

regex - Golang 用空换行符分割字符串

我有这个JS函数,我正在尝试将其转换为Go:functionsplitByEmptyNewline(str){returnstr.replace(/\r\n/g,'\n').split(/^\s*\n/gm);}这是我到目前为止得到的:funcsplitByEmptyNewline(strstring)[]string{strNormalized:=regexp.MustCompile("\r\n").ReplaceAllString(str,"\n")returnregexp.MustCompile("^s*\n").Split(strNormalized,-1)}这不会返回与Jav

regex - golang 正则表达式删除所有空行

我想使用golangs正则表达式替换所有空白行和仅用空格/制表符填充的行。我认为以下正则表达式应该可以解决问题,emptyLINE:=regexp.MustCompile(`^\s*$`)但令我惊讶的是,行首^和行尾$regexp标记不起作用。它们似乎表示整个字符串的开始/结束,而不仅仅是字符串中的一行,请参阅https://play.golang.org/p/WZ4flVtDMN我是不是漏掉了什么?编辑:Wiktors的回答几乎让我到达那里,但我仍然无法删除所有想要的行:https://play.golang.org/p/1IpETpFKCU 最佳答案

regex - 在golang中捕获ping命令的结果

我有两种方式的ping命令结果->1->5packetstransmitted,5packetsreceived,0.0%packetlossround-tripmin/avg/max/stddev=0.067/0.078/0.087/0.007ms2->5packetstransmitted,5received,0%packetloss,time801msrttmin/avg/max/stddev=0.019/0.034/0.044/0.010ms,ipg/ewma200.318/0.038ms这些是ping命令在两个不同平台上的结果。现在,在这两种情况下,我都希望得到avg/std

regex - 我使用 regexp.Compile (`^123(?:4)` ) 尝试从 "123"获取 "1234abcd"而结果是 "1234"

我正在使用go1.8.3进行编码,我想使用正则表达式包从"1234abcd"获取"123"。当我使用regexp.Compile("^123(?:4)")时,它变成了"1234"。在此编码:https://play.golang.org/p/jB7FmxWz9rpackagemainimport("regexp""fmt")funcmain(){test,err:=regexp.Compile(`^123(?:4)`)iferr!=nil{fmt.Println(err)return}input:="1234|wserw"fmt.Println(test.FindString(inpu

regex - 重新匹配相同或部分先前匹配的组

我正在寻找一种方法来匹配之前匹配的部分或整个组。例如,假设我们有以下文本:这是一个很长的文本,“带有”一些我“需要”在它们自己的上下文中匹配的引用字符串像(.{1,20})(".*?")(.{1,20})这样的正则表达式给出以下输出:#|1stgroup|2ndgroup|3rdgroup------------------------------------------------------------------1|isaverylongtext|"with"|somequotedstrings2|I|"need"|toextractintheir目标是强制正则表达式从第1场比赛

regex - 什么是正则表达式来匹配 =,空格分隔后的所有事件?

我有/components/component[name=fan/10index=55]/cpu我想要一个regex给我fan/10和55。我试过=(.*)\s之类的东西,但没有用。但我猜它必须以某种方式使用捕获组(())来完成? 最佳答案 你可以使用=([^\]\s]+)参见regexdemo详情=-等号([^\]\s]+)-捕获第1组:]和空格以外的任何1个或多个字符。GOdemo:packagemainimport("fmt""regexp")funcmain(){s:="/components/component[name=

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(){