【Golang】Perl 正则表达式语法的支持示例

背景

在 Golang 中,标准库的正则表达式包 regexp 是基于 RE2 语法的,并不直接支持 Perl 正则表达式的全部功能。虽然 Golang 的标准库并不直接提供对 Perl 正则表达式的支持,但是您可以使用第三方库来实现与 Perl 兼容的正则表达式功能。

一个常用的第三方库是 github.com/dlclark/regexp2,该库提供了对 Perl 正则表达式语法的支持。您可以使用它来实现与 Perl 兼容的正则表达式匹配。

以下是一个示例代码,演示如何使用 github.com/dlclark/regexp2 库实现对 Perl 正则表达式的支持。

示例

Go 复制代码
import (
	"github.com/dlclark/regexp2"
)

// MatchText 匹配文本 text:原始文本 reg:正则 key 名称
func MatchText(text, reg, key string) (bool, string) {
	re := regexp2.MustCompile(reg, 0)

	// 查找匹配项
	match, _ := re.FindStringMatch(text)
	if match != nil {
		capture := match.GroupByName(key)
		return true, capture.String()
	}
	return false, "未匹配"
}


func main() {
	text := `{"text":"中国银行 是一家很大的银行"}`
	reg := `"text":"(?<name>[\p{Han}]*银行)"`

    ok, resp := MatchText(text, reg, "name")

    log.info(resp)
}

推荐

发票识别: https://behappyto.blog.csdn.net/article/details/135557496?spm=1001.2014.3001.5502

内容管理系统:https://behappyto.blog.csdn.net/article/details/135529753?spm=1001.2014.3001.5502

sso统一授权平台:https://behappyto.blog.csdn.net/article/details/135531245?spm=1001.2014.3001.5502

相关推荐
ClouGence5 分钟前
Oracle 数据同步为什么会出现数据不一致?长事务是常被忽略的原因
数据库·后端·oracle
快乐肚皮37 分钟前
深入理解Loop Engineering
前端·后端
小兔崽子去哪了1 小时前
Vue3 + Pinia 集成 IGV.js 实现 BAM 文件在线浏览
javascript·vue.js·后端
孟陬1 小时前
Claude Code 巧思 `Ctrl+S` 暂存键
前端·后端
雪隐1 小时前
个人电脑玩AI-06让5060 Ti给你打工——不光能画画,Qwen3-TTS还能学人说话,连我老板都信了!
人工智能·后端·python
Oneslide2 小时前
openEuler 17.1GB Everything ISO 离线本地 DNF 源搭建教程
后端
蝎子莱莱爱打怪2 小时前
那不是我的黑历史,那是我的来时路啊!😭😭
后端·程序员
用户298698530142 小时前
Java 实现 Word 文档文本与图片提取的方法
java·后端
蝎子莱莱爱打怪2 小时前
XZLL-IM干货系列 04|Netty 长连接实战:Pipeline 怎么排、心跳怎么跳、连接怎么管
后端·微服务·面试
Csvn2 小时前
Rsync 文件同步与增量备份 — 运维的数据守门员
后端