JS正则表达式学习总结

来源:互联网 发布:淘宝一颗钻 编辑:程序博客网 时间:2024/05/02 22:13

正则表达式是描述字符模式的对象。正则表达式直接量定义为包含在一对斜杠(/)之间的字符。例:/s$/ –匹配所有以s结尾的字符串。
正则表达式中的所有字母和数字都是按照字面含义进行匹配的。JS正则表达式语法也支持非字母的字符匹配。这些字符需要通过反斜线(\)作为前缀进行转义。
比如,\n用来匹配换行符。
正则表达式中的直接量字符

字符 匹配 字母和数字字符 自身 \o NUL字符(\u0000) \t 制表符(\u0009) \n 换行符(\u000A) \v 垂直制表符(\u000B) \f 换页符(\u000C) \r 回车符(\u000D) \xnn 由十六进制数nn指定的拉丁字符,例如,\x0A等价于\n \uxxx 由十六进制数nn指定的Unicode字符,例如,\x0009等价于\n \cX 控制字符^X,例如,\cJ等价于换行符\n

在正则表达式中,许多标点符号具有特殊含义

字符 含义 字母和数字字符 自身 * 匹配任意次 + 匹配一次或多次 ? 匹配0次或多次 $ 以……为结尾 ^ 以……为开头) . 除换行符和其他Unicode行终止符外的任意字符 () 分组 (?:) 忽略分组

正则表达式的字符类

字符 匹配 【……】 方括号内的任意字符 【^……】 不在方括号内的任意字符 \w 单词字符(字母数字和下划线)等价于【a-zA-Z0-9】 \W 除单词字符(字母数字和下划线)之外等价于【^a-zA-Z0-9】 \s 空白 \S 非空白 \d 数字 \D 非数字 \b 以……边界 \B 非边界

量词

字符 匹配 {n,m} 匹配前一项至少n次最多m次 {n,} 匹配前一项至少n次 {n} 匹配前一项n次 * 匹配任意次 + 匹配一次或多次 ? 匹配0次或多次

贪婪模式:正在表达式默认的,尽可能多的匹配次数,直到匹配失败。
非贪婪模式:尽可能少的匹配次数。实现方式在量词后加?
例如: /\d{3,5}/g 贪婪模式
/\d{3,5}?/g 非贪婪模式
上面出现的g表示全文搜索

字符 匹配 g 全文搜索 i 忽略大小写 m 多行搜索 $ 反向引用*

反向引用:例如,/(\d)\w/ $1就可以表示(\d)所匹配到的内容
示例:2017/03/15 使用/(\d{4})/(\d{2})/(\d{2})/ 匹配到前面的日期,那么 $3-$2-$1的显示结果就是 15-03-2017

前瞻和后顾:特别强调JS正则表达式不支持后顾
前瞻和后顾就是判断匹配字符其前后条件是否满足。正则表达式从文本头部向尾部解析,所以文本尾部为前。

正则表达式的对象属性 : g、i、m之前介绍过了
lastIndex:当前表达式匹配内容的最后一个字符的下一个位置。
source:正则表达式的文本字符串,即查看正则表达式的文本内容。
test(str):测试内容是否符合正则表达式。
exec(str):对字符串进行搜索,并将更新全局RegExp对象的属性以及反映匹配结果。
以上内容为学习正则表达式的知识点总结,并没有用示例讲解,详细内容可以参考这里。

0 0
原创粉丝点击