一个正则表达式就是由普通字符和特殊字符(称为元字符)组成的文字模式。
一、常用表达式
匹配一个空白行:/^\[\t]*$/
/<(.*)>.*<\/\1>/
二、元字符的作用
1,转义符
\:将下一个字符标记为一个特殊字符或原义字符或向后引用或八进制转义字符
2,圆括号和方括号
(pattern):匹配pattern并获取这一匹配
(?:pattern):非获取匹配
(?=pattern):正向预查,非获取匹配,windows (?=95|98)可以匹配windows 95
(?!pattern):负向预查,非获取匹配,windows (?!95|98)可以匹配window 2000
[xyz]:匹配包含的任何一个字符
[^xyz]:匹配未包含的一个字符
[a-z]:a,b,c,,,,,,z
[^a-z]:匹配不在指定范围内的字符
3,限定符
*:匹配前面的子表达式零次或多次
+:————至少一次
?:--0次或1次
{n}:--n次
{n,}:至少n次
{n,m}:至少n次,至多m次,不能有空格
?:当该它紧跟在任何一个其他限制字符*+?{n}{n,}{n,m}后面时,匹配模式是非贪婪的。EG:对与字符串“aaaaaaaaaaaaa”,'a+?'将匹配单个a,而'a+'将匹配所有的'a'.
4,位置和顺序
^与&:分别匹配字符串的开始位置和结束位置,如果设置了REGEXP对象的MULTILINE属性,他们也分别匹配换行符'\n'与回车符'\r'之后和之前的位置。
5,或操作
x|y:x or y
6,其它(含有一些不显示的非打印字符)
.:匹配除换行符'\n'之外的任何单个字符。'[.\n]'可以匹配任何单个字符。
\b:单词边界,\B非单词边界
\cx:匹配由x(a-z,A-Z)指明的控制字符。如\cM匹配回车符或Control-M
\d:匹配一个数字字符,\D:匹配一个非数字字符
\f:匹配一个换页符
\n:换行符,nextline
\r:回车符,return
\s:任何空白字符,\S:任何非空白字符
\t:制表符table
\v:垂直制表符vertical
\w:匹配单词字符:a-z,A-Z,0-9,_
\W:非单词字符:
\xn:匹配n,n为十六进制转义值,必须为确定的两个数字eg:\x41,A......\x041,\x04&1
\n:对所获取匹配的引用(之前至少有n个获取),eg:(.)\1两个连续相同的字符,或标识一个八进制转义值(0-7)
\nmL:n(0-3),m(0-7),L(0-7)八进制转义值
\un:匹配一个Unicode字符,n为4个16进制字符,eg:\u00A9---匹配一个版权符号
三、建立正则表达式
正则表达式模式存储在RegExp对象的Pattern属性中
1、优先级(从高到低)
转义符>圆括号和方括号>限定符>位置和操作>或操作符'|'
一、常用表达式
匹配一个空白行:/^\[\t]*$/
/<(.*)>.*<\/\1>/
二、元字符的作用
1,转义符
\:将下一个字符标记为一个特殊字符或原义字符或向后引用或八进制转义字符
2,圆括号和方括号
(pattern):匹配pattern并获取这一匹配
(?:pattern):非获取匹配
(?=pattern):正向预查,非获取匹配,windows (?=95|98)可以匹配windows 95
(?!pattern):负向预查,非获取匹配,windows (?!95|98)可以匹配window 2000
[xyz]:匹配包含的任何一个字符
[^xyz]:匹配未包含的一个字符
[a-z]:a,b,c,,,,,,z
[^a-z]:匹配不在指定范围内的字符
3,限定符
*:匹配前面的子表达式零次或多次
+:————至少一次
?:--0次或1次
{n}:--n次
{n,}:至少n次
{n,m}:至少n次,至多m次,不能有空格
?:当该它紧跟在任何一个其他限制字符*+?{n}{n,}{n,m}后面时,匹配模式是非贪婪的。EG:对与字符串“aaaaaaaaaaaaa”,'a+?'将匹配单个a,而'a+'将匹配所有的'a'.
4,位置和顺序
^与&:分别匹配字符串的开始位置和结束位置,如果设置了REGEXP对象的MULTILINE属性,他们也分别匹配换行符'\n'与回车符'\r'之后和之前的位置。
5,或操作
x|y:x or y
6,其它(含有一些不显示的非打印字符)
.:匹配除换行符'\n'之外的任何单个字符。'[.\n]'可以匹配任何单个字符。
\b:单词边界,\B非单词边界
\cx:匹配由x(a-z,A-Z)指明的控制字符。如\cM匹配回车符或Control-M
\d:匹配一个数字字符,\D:匹配一个非数字字符
\f:匹配一个换页符
\n:换行符,nextline
\r:回车符,return
\s:任何空白字符,\S:任何非空白字符
\t:制表符table
\v:垂直制表符vertical
\w:匹配单词字符:a-z,A-Z,0-9,_
\W:非单词字符:
\xn:匹配n,n为十六进制转义值,必须为确定的两个数字eg:\x41,A......\x041,\x04&1
\n:对所获取匹配的引用(之前至少有n个获取),eg:(.)\1两个连续相同的字符,或标识一个八进制转义值(0-7)
\nmL:n(0-3),m(0-7),L(0-7)八进制转义值
\un:匹配一个Unicode字符,n为4个16进制字符,eg:\u00A9---匹配一个版权符号
三、建立正则表达式
正则表达式模式存储在RegExp对象的Pattern属性中
1、优先级(从高到低)
转义符>圆括号和方括号>限定符>位置和操作>或操作符'|'