JavaScript高级程序设计(第3版)学习笔记12 js正则

需要指出的是,这里只是总结了正则表达式的常用的且比较简单的语法,而不是全部语法,在我看来,掌握了这些常用语法,已经足够应对日常应用了。正则表达式不只是应用在ECMAScript中,在JAVA、.Net、Unix等也有相应应用,这篇文章则是以ECMAScript中的正则表达式为基础总结的。

一、正则表达式基础

1、普通字符:字母、数字、下划线、汉字以及所有没有特殊意义的字符,如ABC123。在匹配时,匹配与之相同的字符。

2、特殊字符:(需要时,使用反斜杠“\”进行转义)

字符   含义   字符   含义   字符   含义   字符   含义  
\a   响铃符 = \x07   ^   匹配字符串的开始位置   \b   匹配单词的开始或结束   {n}   匹配n次  
\f   换页符 = \x0C   $   匹配字符串的结束位置   \B   匹配不是单词开始和结束的位置   {n,}   匹配至少n次  
\n   换行符 = \x0A   ()   标记一个子表达式的开始和结束   \d   匹配数字   {n,m}   匹配n到m次  
\r   回车符 = \x0D   []   自定义字符组合匹配   \D   匹配任意不是数字的字符   [0-9]   匹配0到9中任意一个数字  
\t   制表符 = \x09   {}   修饰匹配次数的符号   \s   匹配任意空白字符   [f-m]   匹配f到m中任意一个字母  
\v   垂直制表符 = \x0B   .   匹配除换行符外的字符   \S   匹配任意非空白字符          
\e   ESC符 = \x1B   ?   匹配0或1次   \w   匹配字母或数字或下划线或汉字          
\xXX   使用两位十六进制表示形式,可与该编号的字符匹配   +   匹配1或多次   \W   匹配任意不是字母、数字、下划线和汉字的字符          
\uXXXX   用四位十六进制表示形式,可与该编号的字符匹配   *   匹配0或多次   [^x]   匹配除x外的所有字符          
\x{XXXXXX}   使用任意位十六进制表示形式,可与该编号的字符匹配   |   左右两边表达式之间“或”关系   [^aeiou]   匹配除aeiou外的所有字符          

上面列举的这些特殊字符,可以大致的分为: 

(1)不便书写字符:如响铃符(\a)、换页符(\f)、换行符(\n)、回车符(\r)、制表符(\t)、ESC符(\e)

(2)十六进制字符:如两位(\x02)、四位(\x012B)、任意位(\x{A34D1})

(3)表示位置字符:如字符串开始(^)、字符串结束($)、单词开始和结束(\b)、单词中间(\B)

(4)表示次数字符:如0或1次(?)、1或多次(+)、0或多次(*)、n次({n})、至少n次({n,})、n到m次({n,m})

(5)修饰字符:如修饰次数({})、自定义组合匹配([])、子表达式(())

(6)反义字符:

  (A)通过大小写反义:如\b和\B、\d和\D、\s和\S、\w和\W

  (B)通过[^]反义:如[^x]、[^aeiou]

  (C)其它特例:如\n和.也构成反义

(7)范围字符:如数字范围([0-9])、字母范围([f-m])

(8)逻辑字符:如表示或(|)

3、转义

(1)使用反斜杠“\”转义单个字符

(2)使用“\Q...\E”转义,将表达式中间出现的字符全部作为普通字符

(3)使用“\U...\E”转义,将表达式中间出现的字符全部作为普通字符,并且将小写字母转换成大写匹配

(4)使用“\L...\E”转义,将表达式中间出现的字符全部作为普通字符,并且将大写字母转换为小写匹配

4、贪婪模式与懒惰模式

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wddsdy.html