regex - 如何使用正则表达式将字符串的一部分捕获到组中?
问题描述
我需要从以下位置捕获 4 个组:
John.7200_24.6.txt.gz
输出:
Group1: John
Group2: 7200
Group3: 24
Group4: 6
这是我的正则表达式:([^.|_|data|gz]+)
它捕获具有多个匹配项的单个组。我该如何解决?
解决方案
这个模式([^.|_|data|gz]+)
可以写成([^._datagz|]+)
它使用否定字符类来匹配除了列出的单个字符之外的 1+ 个字符。
您使用单个捕获组进行拆分,如果您想要 4 个单独的组,您应该创建 4 个组并匹配而不是拆分。
^(\w+)\.(\d+)_(\d+)\.(\d+)
^
字符串的开始(\w+)\.
在第 1 组中捕获 1+ 个单词字符并匹配.
(\d+)_
在第 2 组中捕获 1+ 个数字并匹配_
(\d+)\.
在第 3 组中捕获 1+个数字并匹配.
(\d+)
在第 4 组中捕获 1+ 个数字
或匹配完整的示例字符串:
^(\w+)\.(\d+)_(\d+)\.(\d+)\.\w+\.gz$
推荐阅读
- reactjs - React 组件在本地状态第一次更改时闪烁
- sql - Microsoft Access 小计百分比
- javascript - React Item.map 不是一个函数
- java - 添加前导零
- python - 无法在 IDLE 中使用 Pandas
- r - RShiny 和模块输出。类型环境的对象不可子集
- django - 为什么我的 Django 表单在提交时不起作用?
- reactjs - TypeScript 接受 Function 的类型作为类型,但不接受显式类型的函数作为类型
- python - 如何在 django 中创建与单个博客帖子详细信息相关的评论帖子 api?
- java - 调用外部 api 时 Java 应用程序显示 PKIX 路径构建失败