【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

相关推荐
李迟1 分钟前
Golang实践录:工程框架实践:搭建工程模板
开发语言·后端·golang
纪伊路上盛名在2 分钟前
Kabsch算法的Julia实现
开发语言·算法·julia·序列分析·蛋白质·rmsd
玖玥拾6 分钟前
Lua 基础语法(三) 元表 metatable、元方法、模拟面向对象
开发语言·unity·lua
Lynko6 分钟前
C语言指针高阶
后端
the局外人7 分钟前
学习 FastAPI 的 Day 2:用异步 ORM 完成增删改查
后端·python·fastapi
维天说11 分钟前
Agent会听人话,反而更难管
java·开发语言·人工智能
SamDeepThinking12 分钟前
if嵌套最好控制在3层以内
java·后端·程序员
苏渡苇15 分钟前
Spring Insight 里上报 Span 为什么用 JDK HttpClient 而不是 RestTemplate
java·后端·spring·spring cloud·springboot·性能监控
tonydf15 分钟前
AI驱动历史项目安全审查
后端·ai编程
会飞的拖把26 分钟前
Python 面向对象编程详解:从类与对象到动态属性方法
开发语言·python