【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

相关推荐
充值内卷10 分钟前
C++单文件迷宫游戏:TauriCPP 开发全记录
开发语言·c++·游戏
Antruly11 分钟前
C++ Web 开发选型漫谈:从 Drogon 到 libuvcpp + uvp,八个项目的定位、兼容性与务实排名
开发语言·前端·c++
EnCi Zheng15 分钟前
AI Agent工具调用防护层怎么写-一份能直接跑的Python四层拦截实现
大数据·开发语言·python
香蕉大香蕉(06敬畏市场)26 分钟前
高频八股 · Java 并发编程(10):异步、ThreadLocal 与虚拟线程(收官)
java·开发语言·网络·jvm·python·ai·实习
念何架构之路29 分钟前
Go reflect包值操作 Value 的读写、可设置性与 interface 布局
开发语言·后端·golang
小林ixn32 分钟前
用 FastAPI + SQLAlchemy 从零手搓一个博客系统:一套能落地、能讲清楚的 RESTful 后端
后端·python·fastapi
云中飞鸿36 分钟前
.Net和C#有什么关系?(从C++视角观察)
开发语言·c#·.net
another heaven38 分钟前
【C/C++ C++ 新特性中的那些内存优化的特性】
c语言·开发语言·c++
Wang's Blog40 分钟前
Java 项目实战: 交友项目 - 查询推荐动态
java·开发语言·交友
不识君41 分钟前
esl-client 2.0.0 发布:Java 项目接入 FreeSWITCH,从引入到使用
spring boot·后端·开源