正则表达式是用于匹配字符串中字符组合的模式。
使用简单的模式
简单模式是由你周到的直接匹配所构成的。
使用特殊字符
当你需要搜索一个比直接匹配需要更多条件的匹配时,比如寻找一个或多个 ‘b’,或者寻找空格,那么这时模式将要包含特殊字符。
特殊字符
\ 在非特殊字符前,表示下一个字符时特殊的;在特殊字符前,可以其之后的特殊字符转义为字面量(转义字符)。^ 匹配输入的开始,如果多行标志被设置为true, 那么也匹配换行符后紧跟的位置。如: /^A/ 匹配 ‘An E’ 中的 A, 不会匹配 ‘an A’ 中的 A。$ 匹配输入的结束,如果多行标志被设置为 true, 那么也匹配换行符前的位置。如: /t$/ 会匹配 ‘eat’ 中的 t, 但不会匹配 'eater' 中的 t.* 匹配前一个表达式次或多次,等价于 {0,}+ 匹配前一个表达式1次或多次,等价于 {1, }? 匹配前一个表达式0次或1次,等价于 {0, 1}如果紧跟在任何两次 *、+、?或 {} 后,将会时量词变成非贪婪模式(匹配尽量少的字符),和缺省使用的贪婪模式。. 匹配除换行符之外的任何单个字符。如 /.n/将匹配 "nay, an apple is on the tree" 中的 ‘an’和 ‘on’,但不会匹配 ‘nay’.(x)(?:x)x(?=y) 匹配x仅仅当x 后面跟着 y,这种叫做正向可定查找。x(?!y) 匹配x 仅仅当x 后面不跟着y,这个叫做正向否定查找x|y 匹配x 或 y{n} n是一个正整数,匹配了前面一个字符刚好发生了n次{n, m} n 和 m 都是整数,匹配前面的字符至少 n次,最多 m 次。如果 n 或 m 的值是0,这个值被忽略。/a{1, 3}/ 不匹配 cndy 中的任意字符,匹配 candy 中的a, 匹配 caandy 中前两个 a, 也匹配 caaaaandy 中前三个a(aaa)[xyz] 一个字符集合。匹配方括号中的任意字符,包括转义字符。可用 - 来指定一个字符的范围。对于 . 和 * 这样的特殊符号在一个字符集中没有特殊的意义,它们不必转义,不过转义也起作用。如: [abcd] 和 [a-d] 一样,都匹配 brisket 中的 b 和 city 中的 c.[^xyz] 一个反向字符集。它匹配任何没有包含在方括号中的字符。任何普通字符在这里都是起作用的。[\b] 匹配一个退格(U+0008); 不要和 \b 混淆了.\b 匹配一个次的边界(即 一个词的前面或后面没有其它字符)。/\bm/ 匹配 ‘moon’ 中的 m/oo\b/ 不匹配 'moon' 中的 oo/oon\b/ 匹配 'moon' 中的 oon.\B 匹配一个非单词边界,他匹配一个前后字符都是相同类型的位置。如: /\B../ 匹匹厄 noonday 中的 oo , 而 /y\B../ 匹配 'possibly yesterday'中的 'yes'\cX 当X是处于A到Z之间的字符时,匹配字符串中的一个控制符。\d 匹配一个数字。 等价于 [0-9]\D 匹配一个非数字字符。 等价于[^0-9]. 如 “B2 is the suite number” 中的 B\f 匹配一个换页符\n 匹配一个换行符\r 匹配一个回车符\s 匹配一个空白符,包括空格、制表符、换页符和换行符。\S 匹配一个非空白符\t 匹配一个水平制表符\V 匹配一个垂直制表符\w 匹配一个单字字符(字母、数字或下划线)等价于[A-Za-z0-9_] 如: /\w/ 匹配 apple 中的 a, $5.28 中的 5 和 3D 中的 3.
