如何在 Go 中使用正则表达式匹配并替换成对括号和方括号中的内容?

如何在 go 中使用正则表达式匹配并替换成对括号和方括号中的内容?

go 正则表达式成对匹配并替换

在 go 中,正则表达式提供了一种强大的方式来处理文本。当需要成对匹配并替换字符串时,以下解决方案可以满足需求:

匹配格式:

要匹配成对的方括号和圆括号中的内容,可以使用以下正则表达式:

(?m)\[([^\[\]]+)\]\s*\(([^()]+)\)

解释:

  • (?m):使其能够匹配多行字符串。
  • [([^[]]+)]:匹配方括号内的内容。
  • s*:匹配可选的空白字符(如空格或制表符)。
  • (([^()]+)):匹配圆括号内的内容。

替换格式:

将匹配的内容替换为所需格式,可以使用以下替换字符串:

http://$2/$1

解释:

  • $2:引用圆括号内匹配的内容(url)。
  • $1:引用方括号内匹配的内容(内容)。
  • /:将 url 和内容分隔开。

代码示例:

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))
}

结果:

运行此代码将输出以下结果:

http://xxxx/内容

以上就是如何在 Go 中使用正则表达式匹配并替换成对括号和方括号中的内容?的详细内容,更多请关注其它相关文章!