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

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

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

阅读 3.7k
2 个回答
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))
}

js版的:

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

console.log(toUrl('[内容] (xxxx)')); // "http://xxxx/内容"
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题