js 正则 基本语法

本文参考 阮一峰 《JavaScript 标准参考教程》

字面量字符和元字符

  • 点字符(.) 匹配除回车(\r)、换行(\n)、行分隔符(\u2028)、和段分割符(\u2029)以外的所有字符
  • 位置字符 用来提示字符所处的位置; (^)表示字符串开始的位置 ;($)表示字符串结束的位置
  • 选择符(|) 表示 或 的关系 即cat|dog 表示匹配cat或者dog。选择符会包括它前后的多个字符,比如 /ab|cd/ 指的是匹配ab或者cd,而不是指匹配b或者c。如果想修改这个行为,可以使用圆括号。
  • 转义符(\); 匹配有特殊含义的元字符 加上反斜杠。需要反斜杠转义的字符:(^),(.),([),($),((),()),(|),(*),(+),(?),({),(\)。

特殊字符串

  • (\cX) 表示 Ctrl-[X],其中 X 表示A-Z之中任何一个字母 用来匹配控制字符
  • ([\b]) 匹配退格键(U+0008),不要和\b混淆
  • (\n) 匹配换行键
  • (\r) 匹配回车键
  • (\t) 匹配制表符tab(U+0009)
  • (\v) 匹配垂直制表符(U+000B)
  • (\f) 匹配换页符(U+000C)
  • (\O) 匹配null字符(U+0000)
  • (\xhh) 匹配一个以两位十六位进制数(\x00 - \xFF)表示的字符
  • (\uhhhh) 匹配一个以四位十六进制数(\u0000 - \uFFFF) 表示的unicode字符

字符类 表示一系列字符可供选择 只要匹配其中一个,供选择的字符放在[]中

  • 脱字符([^]) 表示除了字符之中的字符其他都可以匹配 。[^abc] 表示匹配除了abc以外的字符, [^] 表示匹配一切字符包括换行符
  • 连字符(-), [a-c]表示匹配从a到c的字符 [0-9] 表示0123456789,只在[]中起作用。注意 [1-31]只匹配1-3而不是 1-31

预定义模式 表示几种常见模式的写法

  • (\d) 表示0-9 相当于[0-9]
  • (\D) 表示0-9以外的数字 相当于[^0-9]
  • (\w) 表示任意的字母、数字和下划线 相当于[0-9A-Za-z_]
  • (\W) 表示匹配除字母、数字和下划线以为的字符 相当于[^0-9a-zA-z_]
  • (\s) 匹配空格(包括换行符、制表符、空格符等),相等于[ \t\r\n\v\f]。
  • (\S) 匹配非空格的字符,相当于[^ \t\r\n\v\f]。
  • (\b) 匹配词的边界。
  • (\B) 匹配非词边界,即在词的内部

重复类 使用{}表示

  • ({n}) 表示重复n次
  • ({n,}) 表示至少重复n次
  • ({n,m}) 表示重复不少于n次 不多于m次

量词 贪婪模式 最大限度的匹配 直到匹配到下一个不满足的字符为止

  • (?) 表示某个模式出现0次或一次 相当于{0,1}
  • (*) 表示某个模式出现0次或多次 相当于{0,}
  • (+) 表示某个模式出现一次或者多次 相当于{1,}

修饰符

  • (g) 默认情况 正则对象第一次匹配成功就会停止匹配 ,g表示全局匹配 主要用于搜索和替换
  • (i) 默认情况下 正则区分字母的大小写,i表示忽略字母的大小写
  • (m) m修饰符表示多行模式(multiline),会修改^和$的行为。默认情况下(即不加m修饰符时),^和$匹配字符串的开始处和结尾处,加上m修饰符以后,^和$还会匹配行首和行尾,即^和$会识别换行符(\n)。
  • 组匹配==()== 正则表达式的括号表示分组匹配,括号中的模式可以用来匹配分组的内容。
  • 非捕获组 (?:x) 表示不返回该组匹配的内容
  • 先行断言 x(?=y) x只有在y前面才匹配,y不会被计入返回结果。比如,要匹配后面跟着百分号的数字,可以写成/\d+(?=%)/。
  • 先行否定断言 ==x(?!y)==称为先行否定断言(Negative look-ahead),x只有不在y前面才匹配,y不会被计入返回结果。比如,要匹配后面跟的不是百分号的数字,就要写成/\d+(?!%)/。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值