正则表达集团大幅削减

时间:2016-03-11 02:05:27

标签: regex

我有一个字符串:

/1/2/3/anystring as follows here even forward slashes/////

我如何捕捉群组

(1) (2) (3) (anystring as follows here even forward slashes/////)

或有条件地如果不能捕获(2)或(3)则捕获一(1)或(1)/(2)或(1)(2)(3)或全部

我试过了

^/(.*)/(.*)/(.*)/(.*)

但它不会捕获/1/2//1//1/2/3/

3 个答案:

答案 0 :(得分:1)

var str = "/1/2/3/anystring as follows here even forward slashes/////";
str.replace(/\/(([\w\s]|\/+$)+)/g,"($1)");

“(1)(2)(3)(这里的anystring甚至是正斜杠/////)”

答案 1 :(得分:1)

贪心量词.*更改为不情愿的量词.*?

^/(.*?)/(.*?)/(.*?)/(.*)

请参阅live demo

答案 2 :(得分:1)

试试这个

^(?:/(.*?))?(?:/(.*?))?(?:/(.*?)/).*/////

只需使用代表数量0或1的量词?和非贪婪量词*?来执行非贪婪匹配。

请参阅:DEMO