草庐IT

regex_error

全部标签

go - 什么是 `regex grep` ,应用于文件,Golang 中的等价物?

问题我现在正在对多个文件运行正则表达式grep以获取所有TODO,但是命令完成需要几分钟时间:real5m8.073suser0m35.593ssys4m17.608s瞄准目标是立即获取TODO的数量。尝试根据网上的资料,我认为Golang是一个不错的选择,因此我创建了以下代码。funccheck_for_todo(pathstring){text:="//\\sTODO\\s\\d"b,err:=ioutil.ReadFile(path)iferr!=nil{panic(err)}s:=string(b)//containsTodo:=strings.Contains(s,text)

regex - 如何匹配不包含特定字符串的字符串

我想在Go中编写regexp以匹配不包含特定子字符串(-numinput)且包含另一个特定字符串(-setup)的字符串。例如,对于inputStr以下类型的字符串不应匹配,因为存在-numinputstr="axxxyy-setupabc-numinput12345678aaa"以下类型的字符串应该匹配,因为-setup存在且-numinput不存在str="axxxyy-setupabcaaa"以下类型的字符串不应匹配,因为即使-numinput不存在,-setup也不存在str="axxxyyabcaaa"我看到了一些帖子,比如Regularexpressiontomatchal

regex - 匹配在 golang 中以逗号或空格一致分隔的重复模式

我正在尝试解析一个字符串文字中的多个标签。例如name=testName,key=testKey,columns=(c1,c2,c3),我可能会考虑在不久的将来在此字符串中添加更多具有不同语法的标签。所以研究正则表达式来实现它是很自然的。至于语法:有效:`name=testName,key=testKey``name=testName,key=testKey``name=testNamekey=testKey``name=testNamekey=testKey``name=testNamekey=testKeycolumns=(c1c2c3)``name=testNamekey=tes

regex - 根据空格和括号从字符串中提取单词

我有一些字符串对应于由空格分隔的单词,可以使用括号进行分组。我还有一个字符串数组,代表字符串中存在的组(不一定以相同的顺序)。这是一个例子:myString="zzzAND(aaaAND(bbbANDcccORddd))OReeeAND\"ffffff\"AND(ggg)"myGroups=["(ggg)","(aaaAND(bbbANDcccORddd))"]我想在不在引号内和括号内的空格上拆分该查询。对前一个字符串的拆分输出如下:["zzz","AND","(aaaAND(bbbANDcccORddd))","OR","eee","AND","\"ffffff\"","AND","

go - 无法将错误转换为 go-sqlite3.Error

关闭。这个问题是notreproducibleorwascausedbytypos.它目前不接受答案。这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这个问题的解决方式不太可能帮助future的读者。关闭3年前。Improvethisquestion我试图将Go中的错误转换为go-sqlite3.Error,但它总是失败。上图代表我的调试窗口的快照,它显示错误是go-sqlite3.Error类型我正在使用下面的代码进行类型转换。import("github.com/mattn/go-sqlite3")iferr!=nil{ifsqlite3E

go - 意外情况,编译go时expecting expression error

当我编译下面的代码时,它会生成*语法错误:unexpectedcase,expectingexpression*在*caseworkerAddr=行我不知道为什么会这样,因为我只想通过任一channel设置workerAddr。任何建议将不胜感激。fori:=0;i 最佳答案 发生这种情况是因为您在应该编写select的时候编写了Select。Go关键字都不是大写的,因此当编译器看到大写的单词时,它会立即知道它不是表达式,因此会出现语法错误。 关于go-意外情况,编译go时expecti

regex - 在正则表达式替换字符串中转义美元符号

我有一个函数需要用“$ball”替换“byte”。这似乎无法正常工作。这是程序片段。funmain(){str:=[]byte("$appleinabyte\n")strReplace:="$ball"re:=regexp.MustCompile("byte")final:=re.ReplaceAll(str,[]byte(strReplace))ioutil.WriteFile("testfile.txt",final,0744)}testfile.txt中的预期输出:$球中的$苹果testfile.txt中的实际输出:$苹果在一个是否有任何成功获得所需输出的解决方案?

regex - 如何使用正则表达式提取网站的确切名称?

这是为了提取任何com或org网站,其中www.是可选的。这是否使http://成为必须,而且我也无法理解[^.]+的含义。^http://(?:www\.)?[^.]+\.(com|org)/.*$我想要一个特定的网站,即:^http://(?:www\.)?yahoo+\.(com|org)/.*$谢谢 最佳答案 请使用“net/url”包。它有Hostname()允许您从任何url中提取主机名称的方法。在您的情况下[^.]表示除点之外的任何符号。括号定义符号类。Plusafter表示这个类之后的一个或多个符号。您可以将正则表达

arrays - For 循环导致 panic : runtime error due to nil map or slice

嘿,我正在尝试为我的程序创建一个简单的标量向量。我从一个简单的变量开始,然后递增它以使其成为32x1大小的向量矩阵。varx[]intfori:=0;i很简单,但是在尝试编译时出现此错误。panic:runtimeerror:indexoutofrangegoroutine1[running]:main.main()/Users/jeanmac/go/src/matrices/main.go:69+0x7dProcessfinishedwithexitcode2不知道为什么。仅供引用,第69行指的是x[i]=i+1。尝试分配x[i]时,我收到以下警告。报告可能导致运行时panic的ni

regex - Golang 正则表达式与 `ReplaceAllString` 的多个匹配项

我正在尝试编写一些正则表达式来匹配和分离看起来像软件版本的字符串(但实际上并非如此,例如,semver解析将不起作用)。我在匹配输入字符串的“前缀”和“后缀”部分时遇到了一些问题。我从下面得到的输出很奇怪..//Sampleinputs://*'1.2.3-thing'(Prefix:'1.2.3',Suffix:'-thing')//*'1.2.3+1'(Prefix:'1.2.3',Suffix:'+1')//*'1.2.3'(Prefix:'1.2.3',Suffix:'')//*'1'(Prefix:'1',Suffix:'')//*'1-x'(Prefix:'1',Suffi