You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Golang中提取文本中的括号包裹内容

在Golang中提取圆括号包裹的内容

有两种常用方法可以实现这个需求,分别是正则表达式匹配和手动字符串处理,具体如下:

方法一:正则表达式匹配

用Go标准库的regexp包可以快速实现匹配,推荐用非贪婪模式避免匹配多个括号时的错误:

package main

import (
	"fmt"
	"regexp"
)

func main() {
	input := "bla bla bla (asd) bla bla bla"
	// 匹配最短的括号包裹内容,避免贪婪匹配
	re := regexp.MustCompile(`\(.*?\)`)
	// 获取第一个匹配项
	match := re.FindString(input)
	fmt.Println(match) // 输出: (asd)

	// 如果需要提取所有匹配项,用FindAllString
	// matches := re.FindAllString(input, -1)
	// fmt.Println(matches)
}

方法二:手动字符串处理

如果不想依赖正则,也可以通过字符串索引定位来提取:

package main

import (
	"fmt"
	"strings"
)

func extractParentheses(s string) string {
	// 找左括号位置
	leftPos := strings.Index(s, "(")
	if leftPos == -1 {
		return "" // 没有左括号返回空
	}
	// 从左括号开始找右括号位置
	rightPos := strings.Index(s[leftPos:], ")")
	if rightPos == -1 {
		return "" // 只有左括号没有右括号返回空
	}
	// 截取从左括号到右括号(包含)的子串
	return s[leftPos : leftPos+rightPos+1]
}

func main() {
	input := "bla bla bla (asd) bla bla bla"
	result := extractParentheses(input)
	fmt.Println(result) // 输出: (asd)
}

内容的提问来源于stack exchange,提问作者Sepehr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 05:08:12