js正则表达式中的问号几种用法小结
网络编程 2021-07-05 10:07www.168986.cn编程入门
这篇文章主要介绍了js正则表达式中的问号几种用法,比如+?,?,{2,3}?可以停止匹配的贪婪模式,感兴趣的朋友可以参考下
在表示重复的字符后面加问号,比如+?,?,{2,3}?可以停止匹配的贪婪模式。
var pattern=/\w{2,3}/; console.log("aaaa".match(pattern)[0]); /结果"aaa";贪婪模式下会尽可能多的匹配, 所以会匹配3个重复的字符 / var pattern2=/\w{2,3}?/; console.log("aaaa".match(pattern2)[0]); / 结果"aa";加问号后会尽可能少的匹配重复次数, 所以匹配到了2个重复的字符 /
在分组内使用?:可以产生没有编号的分组,比如
var pattern=/(ab)\w+(ba)/; console.log("abcba_".replace(pattern,"$1")); /结果"ab_";匹配到的字符被第一个分组(ab) 替换 / var pattern2=/(?:ab)\w+(ba)/; console.log("abcba_".replace(pattern2,"$1")); / 结果"ba_";第一次分组内加入了?:,产生的是一个 没有编号的分组,所以$1匹配的字符是第二个分组, 也就是第一个编号分组(ba)相匹配的文本内容 /
(?=)和(?!);零宽正向断言和负向断言,括号内表示某个位置右边必须和=右边匹配上,或者不和!后的字符匹配。
var pattern=/str(?=ings)ing/; console.log("strings.a".match(pattern)); console.log("strings.a".match(/string(?=s)/)); console.log("string_x".match(pattern)); console.log("string_x".match(/string(?=s)/)); /前两个结果是["string"],后两个结果是null; str(?=ings)ing/匹配"string",r后面的位置右边必须跟 上ings;和/string(?=s)/一样;匹配"string";g后面的位置 的右边必须跟一个s。"string_x"虽然也含有"string" 不满足(?=...)括号内的条件 /
var pattern=/string(?!s)/; console.log("strings".match(pattern));//null console.log("string.".match(pattern));//["string"] /(?!...)某位置右边不能有!后匹配的字符, string(?!s)/匹配"string","g"后不能跟"s" /
在表示重复次数时,代表重复0次或1次
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程