#沸你不可#
@潘大虎大王 @袁一
我们都是知识分享官第三天打卡
正则中的?和(?:)的区别?
? 可选,放在一个字符,字符组或者括号分组后面,代表这个部分是可选的。
例如:
/colou?r/ 代表当前的u可以有也可以没有
/(very )?good/ 代表当前分组的very可以有,也可以没有
(?:) 非捕获型括号,要注意 这个问号冒号一定要在括号的最前面才有意义。
1. 要理解非捕获括号,要先能理解括号的含义
例如:我想把 1996-07-25 改为 1996/07/25 也就是把 - 改成 /
代码为:'1996-07-25'.replace(/(\d+)-(\d+)-(\d+)/, '$1/$2/$3') 得到预期结果。可以看出来$1 $2 $3 分别代表3个括号内的内容。
2. 现在修改一下这个例子,来理解非捕获括号
例如:我想把 1996-07-25 改为 07/25 去掉1996,然后把 - 改成 /
代码为:'1996-07-25'.replace(/(?:\d+)-(\d+)-(\d+)/, '$1/$2') 得到预期结果 07/25。 这样就能理解(?:)的含义了吧。就是在我们进行分组捕获的时候,捕获这个内容,但是并不想在后面用变量使用的时候。可以考虑用到这个(?:)
@潘大虎大王 @袁一
我们都是知识分享官第三天打卡
正则中的?和(?:)的区别?
? 可选,放在一个字符,字符组或者括号分组后面,代表这个部分是可选的。
例如:
/colou?r/ 代表当前的u可以有也可以没有
/(very )?good/ 代表当前分组的very可以有,也可以没有
(?:) 非捕获型括号,要注意 这个问号冒号一定要在括号的最前面才有意义。
1. 要理解非捕获括号,要先能理解括号的含义
例如:我想把 1996-07-25 改为 1996/07/25 也就是把 - 改成 /
代码为:'1996-07-25'.replace(/(\d+)-(\d+)-(\d+)/, '$1/$2/$3') 得到预期结果。可以看出来$1 $2 $3 分别代表3个括号内的内容。
2. 现在修改一下这个例子,来理解非捕获括号
例如:我想把 1996-07-25 改为 07/25 去掉1996,然后把 - 改成 /
代码为:'1996-07-25'.replace(/(?:\d+)-(\d+)-(\d+)/, '$1/$2') 得到预期结果 07/25。 这样就能理解(?:)的含义了吧。就是在我们进行分组捕获的时候,捕获这个内容,但是并不想在后面用变量使用的时候。可以考虑用到这个(?:)
展开
1
1