js正则表达式学习笔记

来源:互联网 发布:minitab软件统计分析 编辑:程序博客网 时间:2024/05/15 09:00

js正则表达式学习笔记

  • js正则表达式学习笔记
    • 常用代码
    • 分组
    • 最长匹配和最短匹配

正则表达式以前看书学过,针对的是js的正则表达式,其他编程语言的有些正则匹配规则是js不适用的,如:类似/(?<=exp)/这样的断言

常用代码

常用元字符

代码 说明 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或结束 ^ 匹配字符串的开始 $ 匹配字符串的结束

常用的限定符

代码 说明 * 重复零次或更多次 + 重复一次或更多次 ? 重复零次或一次 {n} 重复n次 {n,} 重复n次或更多次 {n,m} 重复n到m次

反义代码

代码/语法 说明 \W 匹配任意不是字母,数字,下划线,汉字的字符 \S 匹配任意不是空白符的字符 \D 匹配任意非数字的字符 \B 匹配不是单词开头或结束的位置 [^x] 匹配除了x以外的任意字符 [^aeiou] 匹配除了aeiou这几个字母以外的任意字符

i:忽略小写
g:全局匹配
|:或运算符

分组

(...)表示一个捕获型分组,一个捕获型分组将赋值它所匹配的文本,并将其放入result数组中,并且指定编号,第一个分组的编号是1;
(?:...)表示一个非捕获型分组,如果需求允许用非捕获型分组替代捕获型分组,因为捕获会有性能上的损失

//捕获分组var pattern = /\w{4}(\d{4})(\w{2})/;  var result = pattern.exec("yunn0871cg");  console.log("city code = "+result[1]+", county code = "+result[2]);  //VM4909:3 city code = 0871, county code = cg//非捕获分组var pattern = /\w{4}(?:\d{4})(\w{2})/;  var result = pattern.exec("yunn0871cg");  console.log("city code = "+result[1]+", county code = "+result[2]);  //VM4934:3 city code = cg, county code = undefined

\1解释
ps:(此处还是不太懂)

最长匹配和最短匹配

//最长匹配"aabab".match(/a.*b/)["aabab"]//最短匹配"aabab".match(/a.*?b/g)["aab", "ab"]

参考文献:
正则表达式30分钟入门教程
正则表达式语言 - 快速参考

0 0
原创粉丝点击