首页 > 解决方案 > 正则表达式匹配并分组到第一个句点和最后一个斜杠

问题描述

我正在创建一个以下列方式匹配和分组的正则表达式:

示例输入: hello.world1/world2/index.js

示例所需的正则表达式分组: [hello].[world1/world2]/[index.js]

括号内的任何内容都将被忽略。我目前有这个 Regex:(^.*\.)(.*\/)(.*$)并且正在捕获以下内容:

当前的正则表达式

请注意第 1 组如何包含句点,第 2 组如何包含最后一个斜杠。两者都是我不想要的。任何帮助纠正这个正则表达式将不胜感激。

标签: regex

解决方案


您需要从捕获组中取出文字字符:

^([^.]*)\.(.*)\/(.*)$

请参阅正则表达式演示正则表达式图

在此处输入图像描述

详情

  • ^- 字符串开始
  • ([^.]*).-尽可能多的除 char 之外的任何零个或多个字符
  • \.- 一个点
  • (.*)- 第 2 组:除换行符以外的任何零个或多个字符,尽可能多
  • \/- 一个/字符
  • (.*)- 第 3 组:除换行符以外的任何零个或多个字符,尽可能多
  • $- 字符串结束。

推荐阅读