草庐IT

regex - 否定前瞻

我正在尝试编写一个正则表达式,它只匹配一个词(本例中的themagicword),来自perl/python世界我会用一个否定的前瞻来做到这一点:^(?!themagicword)。*我如何在golang中实现这一点,因为这在golang中似乎不起作用。 最佳答案 “匹配除一个词以外的任何内容”等同于“匹配(非词)”,后者等同于“不(匹配词)”。因此,只需匹配您要排除的单词,然后返回相反的单词:hasmagic,_:=regexp.MatchString("themagicword","haystack")matched:=!has

正则表达式以点|分号空间分割但忽略 url 例如

我正在尝试解析和匹配大量法律文本,将其全部拆分成单独的句子。我有以下正则表达式,它只适用于几行简单的文本:[^\.\!\?\;\n]*[\.\!\?\;\n](\s+)!和?或在这里非常无关紧要但是。和;因为分隔符在我尝试处理的文本中很常见。问题是上面的正则表达式只是找到那些后跟空格字符的定界符。例如,以下文本将无法正确匹配:MemberStatelaworpursuanttocontractwithahealthprofessionalandsubjecttotheconditionsandsafeguardsreferredtoinparagraph3;processingisne

json - 如何将双引号中的内容与 golang 中的正则表达式进行匹配?

content:=`{null,"Age":24,"Balance":33.23}`rule,_:=regexp.Compile(`"([^\"]+)"`)results:=rule.FindAllString(content,-1)fmt.Println(results[0])//"Age"fmt.Println(results[1])//"Balance"有一个带有``null``值的json字符串,它看起来像这样。这个json来自webapi,我不想替换里面的任何东西。我想使用正则表达式来匹配这个json中没有双引号的所有键,输出是``Age``和``Balance``而不是``

regex - 使用正则表达式解析 Apache 日志文件

这个问题在这里已经有了答案:SplitastringonwhitespaceinGo?(4个答案)关闭3年前。我正在解析一个我自定义的Apache日志,它只给我两个值:“time”和“memory”(值是毫秒数和字节数),它们都是int64或float64,但我是使用正则表达式和Go来解析文件,所以当我匹配文件的内容时,它返回“[]”(空括号)并且不填充slice,我的代码是:for_,line:=rangelines{varbufferbytes.Bufferbuffer.WriteString(`\[0-9]+\s`)buffer.WriteString(`[0-9]+\s`)re

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

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

regex - 验证 AWS 访问和 secret key

AWS访问keyID和secretkey的正则表达式fromtheAWSsecurityblog是:阿基德:(?SK:(?当我尝试将这些与Go一起使用时regexp包,它给出了两个表达式的以下错误:errorparsingregexp:invalidorunsupportedPerlsyntax:`(?.我知道Goregexp包不完全支持Perl语法,但我不确定如何表示相同的表达式以便Go支持它。如有任何帮助,我们将不胜感激。 最佳答案 根据上述系统获取用户凭据并使用它们创建EC2实例的评论,这听起来不像是使用凭据的正确位置。IAM

regex - 如何使用 bson 在 GoLang 中为正则表达式编写 mongodb 查询?

我想使用gomongodb驱动程序在mongodb中使用名字的记录中进行通配符搜索。我正在使用下面的查询来实现它。filter:=bson.D{{Key:"tenantId",Value:cmd.TenantID}}ifcmd.FirstNameSearch!=""{filter=append(filter,bson.E{Key:"firstName",Value:bson.M{"$regex":primitive.Regex{Pattern:"^"+cmd.FirstNameSearch+"$",Options:"i"}}})}这对我不起作用。如果我做错了什么,你能纠正我吗?连in和

regex - 逐行读取特定数据

我正在尝试从特定格式的文件中读取数据。文件如下所示title:stack|content:overflow|metadata:53|comments:nonetitle:google|content:website|metadata:213|comments:Demos我需要逐行阅读为标题变量分配title值("stack"),为内容分配content值("overflow")每行。scanner:=bufio.NewScanner(file)forscanner.Scan(){data:=scanner.Text()data_arr:=strings.Split(data,"|")f

regex - 去正则表达式检测反斜杠字符

在go中,如何检测\反斜杠字符本身?str:="IhaveHello\"World\""varvalidID=regexp.MustCompile(`[.!?]`)这就是我检测的方式。!?字符但是varvalidID=regexp.MustCompile(`[\]`)不检测字符串中的反斜杠。如何在正则表达式中表示反斜杠? 最佳答案 即使在字符类中,您也需要对其进行转义;否则它会认为你试图转义]:varvalidID=regexp.MustCompile(`[\\]`)但就此而言,您可以完全摆脱字符类:varvalidID=regex

regex - 转到正则表达式以匹配带有括号的标签

我想使用正则表达式包获取括号内所有标签的索引。str:="[tag=blue]Hello[tag2=red,tag3=blue]Good"rg:=regexp.MustCompile(`(?:^|\W)\[([\w-]+)=([\w-]+)\]`)rgi:=fmtRegex.FindAllStringIndex(str,-1)fmt.Println(rgi)//Wantindexfor://[tag=blue],[tag2=red,tag3=blue]正则表达式需要返回[tag=blue]、[tag2=red,tag3=blue]的索引但它只返回[tag=blue]。如何修复此正则表达