php小编苹果为您介绍一种强大的字符串处理技巧 - golang正则表达式根据关键字分割字符串。在开发中,我们经常需要根据某个关键字对字符串进行分割,以便进一步处理数据。通过使用golang的正则表达式,我们可以方便地实现这个功能,提高开发效率。本文将为您详细介绍golang正则表达式的使用方法,以及如何根据关键字分割字符串,帮助您在日常开发中更加灵活地处理字符串。让我们一起来探索吧!
这是我的字符串,如 findstudentbyid
现在,我将根据 find
单词之前的 find
单词之前和 by
和 by
、id
之后的关键字进行拆分。
所以golang正则表达式模式是 `(?i)(^find{1})(w+)(by{1})(w+)`
我正在尝试拆分此关键字 findstudentbyid
但我遇到问题,无法找到我所找到的确切结果。
我的预期输出是 [通过 id 查找学生]
或
find student by id
但我无法做到这一点。我确实尝试过这个 golang 代码
package main import ( "fmt" "regexp" ) func main() { txt := "findstudentbyid" re := regexp.MustCompile(`(?i)(^find{1})(\w+)(by{1})(\w+)`) split := re.Split(txt, -1) set := []string{} for i := range split { set = append(set, split[i]) } fmt.Println(set) }
我不认为 Regexp.Split()
是适合您情况的解决方案,根据到文档:
我想你需要的是找到子匹配(如 find
、student
、by
和 id
):
所以你可以像这样使用 Regexp.FindStringSubmatch()
:
fmt.Println("result: ", re.FindStringSubmatch(txt)) result: [findstudentbyid find student by id]
我还认为您可以简化正则表达式,但不要忘记将其放入括号中来处理子匹配,就像注释中指出的那样:
re := regexp.MustCompile(`(find)(.+)(by)(.+)`)
以上是golang正则表达式根据关键字分割字符串的详细内容。更多信息请关注PHP中文网其他相关文章!