正则表达式:匹配任何一种情况并保留原始文本

我想用新字符串替换正则表达式匹配的字符串,但仍保留原始文本的一部分。


我想得到


I own_VERB it and also have_VERB it


I own it and also have it

我如何用一行代码做到这一点?我试过了,但不能比这更进一步。谢谢,


http://play.golang.org/p/SruLyf3VK_


      package main


      import "fmt"

      import "regexp"


      func getverb(str string) string {

        var validID = regexp.MustCompile(`(own)|(have)`)

        return validID. ReplaceAllString(str, "_VERB")  

      }


      func main() {

        fmt.Println(getverb("I own it and also have it"))

        // how do I keep the original text like

        // I own_VERB it and also have_VERB it

      }


回首忆惘然
浏览 351回答 3
3回答

倚天杖

似乎有点谷歌搜索帮助:var validID = regexp.MustCompile(`(own|have)`)return validID. ReplaceAllString(str, "${1}_VERB")

aluckdog

在替换内部,$符号被解释为在 Expand 中,因此例如 $1 表示第一个子匹配的文本。package mainimport (   "fmt"   "regexp")func main() {    re := regexp.MustCompile("(own|have)")    fmt.Println(re.ReplaceAllString("I own it and also have it", "${1}_VERB"))      }输出I own_VERB it and also have_VERB it
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go