草庐IT

REGEX_EXTRACT

全部标签

regex - 如何用正则表达式捕获 'multiple'重复组

我想解析以下文本文件以获取各个字段:host_group_web=()host_group_lbnorth=(lba050lbhou002lblon003)我要提取的字段以粗体显示host_group_web=()host_group_lbnorth=(lba505lbhou002lblon003)host_group_web在()之间没有项目,因此该部分将被忽略我将第一个组命名为nodegroup,将()之间的项目命名为nodes我正在逐行读取文件,并存储结果以供进一步处理。在Golang中,这是我正在使用的正则表达式的片段:hostGroupLine:="host_group_lb

regex - 转义字符串特殊字符以在 golang 正则表达式中使用

我有一个这样的字符数组:chars:=[]string{".","-","(",")"}当我以常规方式(strings.Join(chars,""))加入它们并将其传递给regexp.MustCompile时,它的panic:panic:regexp:Compile(`[.-()]`):errorparsingregexp:invalidcharacterclassrange:`.-(`如何转义字符串特殊字符以在golangregexp中用作非regexp运算符的字符? 最佳答案 您必须将-项放在数组的开头/结尾,以便-出现在开头-

regex - mgo 正则表达式不起作用

现在我有一些文档,每个文档都有一个键path和值,例如\A\、\B\、\A\C\,\A\C\D\,\A\E\,\A\E\F\.我想找到只有1个段的那些。这意味着结果应该是\A\和\B\。我使用正则表达式/^\\[^\\]*\\$/,它在MongoDB终端中运行良好。但是当我尝试将它应用于Go程序时它不起作用。Go代码:varnodeList[]NodeEntry//NodeEntrywouldmatcheveryfieldofonedocumenterr=c.Find(bson.M{"path":bson.M{"$regex":bson.RegEx{"^\\[^\\]*\\$",""}

regex - gorilla Mux 正则表达式

我正在使用来自GolangGorillaToolkit的Mux包对于我的路线。考虑以下路线:m.HandleFunc("/admin/install",installHandler).Methods("GET")m.HandleFunc("/admin/^((?!install).)*$",adminHandler).Methods("GET")m.HandleFunc("/admin",adminHandler).Methods("GET")问题出在中间路由的正则表达式上——它没有被解释,所以路由不会工作!m.HandleFunc("/admin/{^((?!install).)*$

regex - regexp.Compile 和 regexp.CompilePOSIX 有什么区别?

谁能提供一些例子来解释regexp.Compile之间的区别?和regexp.CompilePOSIX?我阅读了文档。但是我无法得到直观的理解。 最佳答案 Perl和POSIX兼容的正则表达式在很大程度上相似,但在某些关键方面有所不同,例如submatching。这个提到here:POSIXdefinesthattoresolvesubmatches,firstchosethematchthatstartsleftmostinthestring.(ThisistraditionalPerlbehaviorbutherethingsd

regex - 使用 Regex golang 查找所有字符串匹配项

我正在尝试返回一个数组或slice,其中包含特定正则表达式与字符串的所有匹配项。字符串是:{city},{state}{zip}我想返回一个数组,其中包含大括号之间的所有字符串匹配项。我试过使用regexp包来完成这个但无法弄清楚如何返回我正在寻找的东西。这是我当前的代码:r:=regexp.MustCompile("/({[^}]*})/")matches:=r.FindAllString("{city},{state}{zip}",-1)但是,无论我尝试什么,它每次都返回一个空slice。 最佳答案 首先,您不需要正则表达式分隔

regex - 使用正则表达式验证密码

我正在尝试使用正则表达式编写密码验证函数,但不知道该怎么做。Go语言标准API提供的正则包与其他语言不同。有人知道这个正则表达式模式应该是什么样子吗?模式应该验证:/**Passwordrules:*atleast7letters*atleast1number*atleast1uppercase*atleast1specialcharacter*/ 最佳答案 这实际上是不可能的,因为Go的regex不支持回溯。不过实现起来很简单,举个简单的例子:funcverifyPassword(sstring)(sevenOrMore,numb

regex - 是否去正则表达式任何字符匹配换行符

Go的re2syntaxdocument表示任何字符(.)匹配任何字符,包括换行符(s=true)。但是我写了一个简单的程序结果显示任何字符根本不匹配换行符。该程序可以在这里找到:http://play.golang.org/p/pccP52RvKS 最佳答案 与大多数其他(所有?)正则表达式引擎一样,点不匹配换行符,除非你将“全部点”标记(?s)添加到正则表达式。我使用您的链接对此进行了测试并且有效。https://golang.org/pkg/regexp/syntax 关于rege

regex - Golang 多行正则表达式不起作用

为什么下面的多行正则表达式不起作用,我希望匹配标签内的子字符串。其他简单的多行匹配工作正常。funcmain(){r:=regexp.MustCompile(`(?m)(.*)`)consts=`ThatisFOOBAR`fmt.Printf("%#v\n",r.FindStringSubmatch(s))}https://play.golang.org/p/8C6u_0ca8w 最佳答案 默认情况下,“.”不匹配换行符。如果你给出“s”标志,它确实如此。我认为您不需要“m”。注意如果有多个...在您的字符串中,正则表达式将匹配第一

regex - 使用 Golang 正则表达式在字符串中查找数字

我想使用以下代码查找字符串中的所有数字:re:=regexp.MustCompile("[0-9]+")fmt.Println(re.FindAllString("abc123def",0))我还尝试向正则表达式添加定界符,使用正数作为FindAllString的第二个参数,使用纯数字字符串(如“123”)作为第一个参数...但输出总是[]我似乎错过了一些关于正则表达式在Go中如何工作的东西,但我无法全神贯注。[0-9]+不是有效的表达式吗? 最佳答案 问题出在您的第二个整数参数上。引用自regex的包文档:Theseroutine