【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

相关推荐
愚农搬码15 小时前
电子表单、动态表单、表单设计器和表单引擎到底有什么区别?
java·后端
挖掘狂人15 小时前
Redis 为什么快?把 "存内存" 这句话拆开看
redis·后端·性能优化
CarIise15 小时前
Spring 框架AOP与 XML 基础
java·开发语言
Moment16 小时前
DeepSeek 发布新模型,直接把 Agent 联网搜索的门槛打下来了!
前端·后端
geovindu16 小时前
rust:N-Barrier Pattern
开发语言·后端·设计模式·rust·屏障模式·并发型模式
AI宇宙狂想家16 小时前
开源 AI 视频工具进化史:从难用到好用,OpenMontage 改了什么
开发语言·前端·人工智能·开源·ai创业·openmontage
努力的小雨16 小时前
Milvus知识库PDF导入失败怎么办?10分钟看懂异常日志排查
后端
Rain的Java大神之路16 小时前
「设计一个在线文档协同编辑系统」:从 WebSocket、OT/CRDT 到快照回放,一篇讲透这道面试顶流题
java·后端·面试
codigger16 小时前
Redis 为什么快?把 "存内存" 这句话拆开看
redis·后端·性能优化·程序员
大鹏说大话16 小时前
和小鹅通相近的知识付费小程序平台有哪些
开发语言