string - 沿正则表达式拆分字符串,但保持匹配
问题描述
我想按正则表达式拆分字符串,但保留匹配项。
我曾尝试在正则表达式上拆分字符串,但它会丢弃匹配项。我也尝试过使用这个,但我不太擅长将代码从一种语言翻译到另一种语言,更不用说 C#了。
re := regexp.MustCompile(`\d`)
array := re.Split("ab1cd2ef3", -1)
我需要数组的值为[“ab”,“1”,“cd”,“2”,“ef”,“3”],但数组的值为[“ab”,“cd”,“ ef"]。没有错误。
解决方案
您指出的链接中的那种正则表达式支持在 Go regex 包中不可用。您可以阅读相关讨论。
您想要实现的目标(根据给出的示例)可以使用正则表达式来匹配数字或非数字。
package main
import (
"fmt"
"regexp"
)
func main() {
str := "ab1cd2ef3"
r := regexp.MustCompile(`(\d|[^\d]+)`)
fmt.Println(r.FindAllStringSubmatch(str, -1))
}
游乐场: https: //play.golang.org/p/L-ElvkDky53
输出:
[[ab ab] [1 1] [cd cd] [2 2] [ef ef] [3 3]]
推荐阅读
- sql - 通过减少内部查询来优化此 SQL 查询?
- sql - 如何使 SQL 表的字段值成为 SQL 中 JSON 对象的键?
- mongodb - Mongoose/Express 应用中的授权设计
- azure - 如何根据分支触发器在 yml 文件中运行不同的步骤
- html - 使用 Material UI,如何让两个图像垂直堆叠到另一个更大图像的右侧?
- masstransit - 如何在测试期间检测内存总线何时完成处理所有消息?
- python-3.x - Python 找不到我可以在 EIP 溢出中看到的子字符串
- api - OPEN API 3.0 将查询参数扩展到路径部分
- svn - NFS 导出的 SVN 存储库对客户端显示已损坏
- python - 嵌套字典到单个字典