首页 > 解决方案 > 正则表达式中第二个捕获组的一部分

问题描述

如何确定第二个捕获组的第一部分(点之前)?

我有一个这样的字符串:aabb_cc.dd_eeff 要将这个字符串分成组,我使用正则表达式(.*)_(.*)_(.*) 我现在只使用第二组(cc.dd)的点(cc)之前的部分?点是可选的。我怎样才能做到这一点?

我尝试这个没有成功:(.*)_(.*(?=\.))_(.*)

结果必须是:

Group 1 : aabb
Group 2 : cc
Group 3 : eeff

标签: regex

解决方案


编辑:

由于.是可选的,请使用:

(.*)_(.*?)(?:\..*)?_(.*) /g

演示


用这个:

(.*)_(.*)\..*_(.*)

只需捕获需要的内容。

演示


推荐阅读