【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

相关推荐
观远数据29 分钟前
经营闭环的最后一公里:从看见问题到解决问题之间还差什么
java·开发语言·数据库
Java面试题总结34 分钟前
Go 语言大白话入门 6 - 判断与循环
开发语言·后端·golang
m0_6174939444 分钟前
Python OpenCV 孔洞检测与缺陷分析详解与实战
开发语言·python·opencv
hsg772 小时前
简述:Rust、GeoRust、自主研发GIS平台
开发语言·后端·rust
承渊政道2 小时前
飞算Java炫技赛:Java×Unity数字孪生园区平台的从零落地记录
java·开发语言·unity·技术分享·vibe coding·飞算javaai·飞算java ai炫技赛
wdfk_prog8 小时前
嵌入式面试真题第 10 题:高优化等级下共享状态可见性、内存模型与系统级同步设计
java·linux·开发语言·面试·职场和发展·架构·c
谭光志9 小时前
Vibe Coding 时代,程序员该何去何从
前端·后端·ai编程
GoGeekBaird10 小时前
我用 BeeWeave 跑完了一次完整写作闭环
后端·github
仿生狮子11 小时前
别再说“全栈”了,AI 时代团队只认这 5 种人
前端·人工智能·后端
许彰午11 小时前
95_Python内存管理与垃圾回收
开发语言·python