H5W3
当前位置:H5W3 > 问答 > 正文

golang正则表达式如何成对匹配并且替换

如题,想要达成效果如下
原字符串 [内容] (xxxx)
结果字符串 http://xxxx/内容

原字符串中可能存在多个符合 []()格式的信息,希望能够全部替换掉

回答

js版的:

function toUrl(str) {
    return str.replace(/^\[([^\]]+)\]\s*\(([^)]+)\)$/, 'http://$2/$1');
}

console.log(toUrl('[内容] (xxxx)')); // "http://xxxx/内容"
package main

import (
    "regexp"
    "fmt"
)

func main() {
    var re = regexp.MustCompile(`(?m)\[([^\[\]]+)\]\s*\(([^()]+)\)`)
    var str = `[内容] (xxxx)`
    var substitution = "http://$2/$1"
    
    fmt.Println(re.ReplaceAllString(str, substitution))
}

未经允许不得转载:H5W3 » golang正则表达式如何成对匹配并且替换

赞 (0)

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址