在 Go 中使用正则表达式检索字符串匹配
在 Go 中,regexp 包提供了根据正则在字符串中搜索匹配项的功能表达式。本指南说明如何从给定字符串中提取匹配数组,这些字符串包含用大括号括起来的特定段。
问题:
您有一个包含以下内容的字符串模式:
{city}, {state} {zip}
您的目标是获得一个包含大括号之间出现的所有子字符串的数组。尽管使用了 regexp 包,但您在实现所需的输出时遇到了困难。
解决方案:
要解决此问题,请考虑以下步骤:
- 消除正则表达式分隔符:删除包裹正则表达式的正斜杠表达式。
- 使用原始字符串文字: 使用原始字符串文字定义正则表达式,用反引号 `` 表示,它允许您使用单个反斜杠转义正则表达式元字符。
- 删除捕获组:对于本例,捕获组{([^{}]*)} 是不必要的,因为您只需要大括号之间的字符串。因此,您可以使用简化模式 {[^}]*}。
要检索所有匹配项,请使用 FindAllString:
r := regexp.MustCompile(`{[^{}]*}`) matches := r.FindAllString("{city}, {state} {zip}", -1)
仅捕获卷曲之间的部分大括号,使用 FindAllStringSubmatch 以及包含捕获括号的模式:
r := regexp.MustCompile(`{([^{}]*)}`) matches := r.FindAllStringSubmatch("{city}, {state} {zip}", -1) for _, v := range matches { fmt.Println(v[1]) }
Regex细分:
- { - 匹配文字左大括号。
- {[^{}]*} - 捕获除大括号之外的所有字符并将它们存储在group.
- ([^{}]*) - 与上面类似,但捕获的部分分配给组1.
- } - 匹配文字右大括号。
以上是如何使用 Go 的 regexp 包提取大括号内的字符串匹配?的详细内容。更多信息请关注PHP中文网其他相关文章!

本文演示了创建模拟和存根进行单元测试。 它强调使用接口,提供模拟实现的示例,并讨论最佳实践,例如保持模拟集中并使用断言库。 文章

本文探讨了GO的仿制药自定义类型约束。 它详细介绍了界面如何定义通用功能的最低类型要求,从而改善了类型的安全性和代码可重复使用性。 本文还讨论了局限性和最佳实践

本文使用跟踪工具探讨了GO应用程序执行流。 它讨论了手册和自动仪器技术,比较诸如Jaeger,Zipkin和Opentelemetry之类的工具,并突出显示有效的数据可视化

本文讨论了GO的反思软件包,用于运行时操作代码,对序列化,通用编程等有益。它警告性能成本,例如较慢的执行和更高的内存使用,建议明智的使用和最佳

本文讨论了GO中使用表驱动的测试,该方法使用测试用例表来测试具有多个输入和结果的功能。它突出了诸如提高的可读性,降低重复,可伸缩性,一致性和A

本文讨论了通过go.mod,涵盖规范,更新和冲突解决方案管理GO模块依赖关系。它强调了最佳实践,例如语义版本控制和定期更新。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

Atom编辑器mac版下载
最流行的的开源编辑器

Dreamweaver Mac版
视觉化网页开发工具

Dreamweaver CS6
视觉化网页开发工具

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中