2016-09-25 16:16发布
我知道?:是表示不匹配的意思,那具体用法呢,可否举例子说明?
预搜索时可以指定匹配的结果包括或不包括预搜索内容,实例:http://blog.163.com/m13864039...
?:是忽略分组吧。就是不会对分组进行记录。
比如13588884444.replace(/(d{3})(d{4})(d{4})/g, $1****$3),第二个分组显然没什么卵用,13588884444.replace(/(d{3})(?:d{4})(d{4})/g, $1****$2)忽略掉这个分组,然后反向引用$2就行了。
13588884444.replace(/(d{3})(d{4})(d{4})/g, $1****$3)
13588884444.replace(/(d{3})(?:d{4})(d{4})/g, $1****$2)
(?:exp)是 非捕获分组
(?:exp)
(?:...):只分组不捕获;example:"ababcd".replace(/(?:ab)+(cd)+/, $1);explain:(?:)只分组的意思就是,它的作用就是让 ‘+’ 号的范围变大而已,而且这种括号 ‘(?:)’ 的值不能通过 $n 来引用,也不会计数,就是说上例中的 ‘$1’ 是 "cd";result:"cd";
(...):既分组又捕获;example:"ababcd".replace(/(ab)+(cd)+/, $2+$1);explain:() 使得 + 号可以作用在一组字符(ab)中,而且可以通过 $n 引用括号里的字符(从左边第一个 ‘(’ 数起,第 1 个用 $1)。result:"cdab";
当然只是举个例子,因为第二个完全没有必要使用分组。正则自己写得不多,暂时没想到别的好的例子!
最多设置5个标签!
付费偷看金额在0.1-10元之间
预搜索时可以指定匹配的结果包括或不包括预搜索内容,
实例:http://blog.163.com/m13864039...
?:是忽略分组吧。就是不会对分组进行记录。
比如
13588884444.replace(/(d{3})(d{4})(d{4})/g, $1****$3)
,第二个分组显然没什么卵用,13588884444.replace(/(d{3})(?:d{4})(d{4})/g, $1****$2)
忽略掉这个分组,然后反向引用$2就行了。(?:exp)
是 非捕获分组(?:...):只分组不捕获;
example:"ababcd".replace(/(?:ab)+(cd)+/, $1);
explain:(?:)只分组的意思就是,它的作用就是让 ‘+’ 号的范围变大而已,而且这种括号 ‘(?:)’ 的值不能通过 $n 来引用,也不会计数,就是说上例中的 ‘$1’ 是 "cd";
result:"cd";
(...):既分组又捕获;
example:"ababcd".replace(/(ab)+(cd)+/, $2+$1);
explain:() 使得 + 号可以作用在一组字符(ab)中,而且可以通过 $n 引用括号里的字符(从左边第一个 ‘(’ 数起,第 1 个用 $1)。
result:"cdab";
当然只是举个例子,因为第二个完全没有必要使用分组。正则自己写得不多,暂时没想到别的好的例子!
一周热门 更多>