正则表达式规则Word格式.docx
- 文档编号:16446040
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:14
- 大小:21.75KB
正则表达式规则Word格式.docx
《正则表达式规则Word格式.docx》由会员分享,可在线阅读,更多相关《正则表达式规则Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
利用正则替换
alert(data.replace(reCat,"
libinqq"
));
6)split
利用正则分割数组
varreCat=/\,/;
vararrdata=data.split(reCat);
for(vari=0;
i<
arrdata.length;
alert(arrdata[i]);
JavaScriptRegExp对象参考手册
RegExp对象
RegExp对象表示正则表达式,它是对字符串执行模式匹配的强大工具。
直接量语法
/pattern/attributes
创建RegExp对象的语法:
newRegExp(pattern,attributes);
参数
参数pattern是一个字符串,指定了正则表达式的模式或其他正则表达式。
参数attributes是一个可选的字符串,包含属性"
g"
、"
i"
和"
m"
,分别用于指定全局匹配、区分大小写的匹配和多行匹配。
ECMAScript标准化之前,不支持m属性。
如果pattern是正则表达式,而不是字符串,则必须省略该参数。
返回值
一个新的RegExp对象,具有指定的模式和标志。
如果参数pattern是正则表达式而不是字符串,那么RegExp()构造函数将用与指定的RegExp相同的模式和标志创建一个新的RegExp对象。
如果不用new运算符,而将RegExp()作为函数调用,那么它的行为与用new运算符调用时一样,只是当pattern是正则表达式时,它只返回pattern,而不再创建一个新的RegExp对象。
抛出
SyntaxError-如果pattern不是合法的正则表达式,或attributes含有"
之外的字符,抛出该异常。
TypeError-如果pattern是RegExp对象,但没有省略attributes参数,抛出该异常。
修饰符
描述
i
执行对大小写不敏感的匹配。
g
执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
m
执行多行匹配。
方括号
方括号用于查找某个范围内的字符:
表达式
[abc]
查找方括号之间的任何字符。
[^abc]
查找任何不在方括号之间的字符。
[0-9]
查找任何从0至9的数字。
[a-z]
查找任何从小写a到小写z的字符。
[A-Z]
查找任何从大写A到大写Z的字符。
[A-z]
查找任何从大写A到小写z的字符。
[adgk]
查找给定集合内的任何字符。
[^adgk]
查找给定集合外的任何字符。
(red|blue|green)
查找任何指定的选项。
元字符
元字符(Metacharacter)是拥有特殊含义的字符:
.
查找单个字符,除了换行和行结束符。
\w
查找单词字符。
\W
查找非单词字符。
\d
查找数字。
\D
查找非数字字符。
\s
查找空白字符。
\S
查找非空白字符。
\b
查找位于单词的开头或结尾的匹配。
\B
查找不处在单词的开头或结尾的匹配。
\0
查找NUL字符。
\n
查找换行符。
\f
查找换页符。
\r
查找回车符。
\t
查找制表符。
\v
查找垂直制表符。
\xxx
查找以八进制数xxx规定的字符。
\xdd
查找以十六进制数dd规定的字符。
\uxxxx
查找以十六进制数xxxx规定的Unicode字符。
量词
n+
匹配任何包含至少一个n的字符串。
n*
匹配任何包含零个或多个n的字符串。
n?
匹配任何包含零个或一个n的字符串。
n{X}
匹配包含X个n的序列的字符串。
n{X,Y}
匹配包含X或Y个n的序列的字符串。
n{X,}
匹配包含至少X个n的序列的字符串。
n$
匹配任何结尾为n的字符串。
^n
匹配任何开头为n的字符串。
?
=n
匹配任何其后紧接指定字符串n的字符串。
!
n
匹配任何其后没有紧接指定字符串n的字符串。
RegExp对象属性
FF:
Firefox,IE:
InternetExplorer
属性
FF
IE
global
RegExp对象是否具有标志g。
1
4
ignoreCase
RegExp对象是否具有标志i。
lastIndex
一个整数,标示开始下一次匹配的字符位置。
multiline
RegExp对象是否具有标志m。
source
正则表达式的源文本。
RegExp对象方法
方法
compile
编译正则表达式。
exec
检索字符串中指定的值。
返回找到的值,并确定其位置。
test
返回true或false。
支持正则表达式的String对象的方法
search
检索与正则表达式相匹配的值。
match
找到一个或多个正则表达式的匹配。
replace
替换与正则表达式匹配的子串。
split
把字符串分割为字符串数组。
一个正则表达式就是由普通字符(例如字符a到z)以及特殊字符(称为元字符)组成的文字模式。
该模式描述在查找文字主体时待匹配的一个或多个字符串。
正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
这里有一些可能会遇到的正则表达式示例:
JScript
VBScript
匹配
/^\[\t]*$/
"
^\[\t]*$"
匹配一个空白行。
/\d{2}-\d{5}/
\d{2}-\d{5}"
验证一个ID号码是否由一个2位数字,一个连字符以及一个5位数字组成。
/<
(.*)>
.*<
\/\1>
/
<
匹配一个HTML标记。
下表是元字符及其在正则表达式上下文中的行为的一个完整列表:
字符
\
将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。
例如,'
n'
匹配字符"
n"
。
'
\n'
匹配一个换行符。
序列'
\\'
匹配"
\"
而"
\("
则匹配"
("
^
匹配输入字符串的开始位置。
如果设置了RegExp对象的Multiline属性,^也匹配'
或'
\r'
之后的位置。
$
匹配输入字符串的结束位置。
如果设置了RegExp对象的Multiline属性,$也匹配'
之前的位置。
*
匹配前面的子表达式零次或多次。
例如,zo*能匹配"
z"
以及"
zoo"
*等价于{0,}。
+
匹配前面的子表达式一次或多次。
zo+'
能匹配"
zo"
,但不能匹配"
+等价于{1,}。
匹配前面的子表达式零次或一次。
例如,"
do(es)?
可以匹配"
do"
或"
does"
中的"
。
等价于{0,1}。
{n}
n是一个非负整数。
匹配确定的n次。
o{2}'
不能匹配"
Bob"
中的'
o'
,但是能匹配"
food"
中的两个o。
{n,}
至少匹配n次。
o{2,}'
,但能匹配"
foooood"
中的所有o。
o{1,}'
等价于'
o+'
o{0,}'
则等价于'
o*'
{n,m}
m和n均为非负整数,其中n<
=m。
最少匹配n次且最多匹配m次。
刘,"
o{1,3}"
将匹配"
fooooood"
中的前三个o。
o{0,1}'
o?
请注意在逗号和两个数之间不能有空格。
当该字符紧跟在任何一个其他限制符(*,+,?
{n},{n,},{n,m})后面时,匹配模式是非贪婪的。
非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。
例如,对于字符串"
oooo"
,'
o+?
将匹配单个"
o"
,而'
将匹配所有'
匹配除"
\n"
之外的任何单个字符。
要匹配包括'
在内的任何字符,请使用象'
[.\n]'
的模式。
(pattern)
匹配pattern并获取这一匹配。
所获取的匹配可以从产生的Matches集合得到,在VBScript中使用SubMatches集合,在JScript中则使用$0…$9属性。
要匹配圆括号字符,请使用'
\('
\)'
(?
:
pattern)
匹配pattern但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。
这在使用"
或"
字符(|)来组合一个模式的各个部分是很有用。
例如,'
industr(?
y|ies)就是一个比'
industry|industries'
更简略的表达式。
=pattern)
正向预查,在任何匹配pattern的字符串开始处匹配查找字符串。
这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。
Windows(?
=95|98|NT|2000)'
Windows2000"
中的"
Windows"
,但不能匹配"
Windows3.1"
预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
负向预查,在任何不匹配Negativelookaheadmatchesthesearchstringatanypointwhereastringnotmatchingpattern的字符串开始处匹配查找字符串。
例如'
95|98|NT|2000)'
预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始
x|y
匹配x或y。
z|food'
(z|f)ood'
zood"
[xyz]
字符集合。
匹配所包含的任意一个字符。
[abc]'
plain"
a'
[^xyz]
负值字符集合。
匹配未包含的任意字符。
[^abc]'
中的'
p'
字符范围。
匹配指定范围内的任意字符。
[a-z]'
可以匹配'
到'
z'
范围内的任意小写字母字符。
[^a-z]
负值字符范围。
匹配任何不在指定范围内的任意字符。
[^a-z]'
可以匹配任何不在'
范围内的任意字符。
匹配一个单词边界,也就是指单词和空格间的位置。
er\b'
可以匹配"
never"
er'
verb"
匹配非单词边界。
er\B'
\cx
匹配由x指明的控制字符。
例如,\cM匹配一个Control-M或回车符。
x的值必须为A-Z或a-z之一。
否则,将c视为一个原义的'
c'
字符。
匹配一个数字字符。
等价于[0-9]。
匹配一个非数字字符。
等价于[^0-9]。
匹配一个换页符。
等价于\x0c和\cL。
匹配一个换行符。
等价于\x0a和\cJ。
匹配一个回车符。
等价于\x0d和\cM。
匹配任何空白字符,包括空格、制表符、换页符等等。
等价于[\f\n\r\t\v]。
匹配任何非空白字符。
等价于[^\f\n\r\t\v]。
匹配一个制表符。
等价于\x09和\cI。
匹配一个垂直制表符。
等价于\x0b和\cK。
匹配包括下划线的任何单词字符。
等价于'
[A-Za-z0-9_]'
匹配任何非单词字符。
等价于'
[^A-Za-z0-9_]'
\xn
匹配n,其中n为十六进制转义值。
十六进制转义值必须为确定的两个数字长。
\x41'
A"
\x041'
\x04'
&
"
1"
正则表达式中可以使用ASCII编码。
\num
匹配num,其中num是一个正整数。
对所获取的匹配的引用。
(.)\1'
匹配两个连续的相同字符。
标识一个八进制转义值或一个后向引用。
如果\n之前至少n个获取的子表达式,则n为后向引用。
否则,如果n为八进制数字(0-7),则n为一个八进制转义值。
\nm
如果\nm之前至少有isprecededbyatleastnm个获取得子表达式,则nm为后向引用。
如果\nm之前至少有n个获取,则n为一个后跟文字m的后向引用。
如果前面的条件都不满足,若
n和m均为八进制数字(0-7),则\nm将匹配八进制转义值nm。
\nml
如果n为八进制数字(0-3),且m和l均为八进制数字(0-7),则匹配八进制转义值nml。
\un
匹配n,其中n是一个用四个十六进制数字表示的Unicode字符。
例如,\u00A9匹配版权符号(?
)。
定义正则表达式
1)定义正则表达式有两种形式,一种是普通方式,一种是构造函数方式。
2)普通方式:
varreg=/表达式/附加参数
表达式:
一个字符串,代表了某种规则,其中可以使用某些特殊字符,来代表特殊的规则,后面会详细说明。
附加参数:
用来扩展表达式的含义,目前主要有三个参数:
g:
代表可以进行全局匹配。
i:
代表不区分大小写匹配。
m:
代表可以进行多行匹配。
上面三个参数,可以任意组合,代表复合含义,当然也可以不加参数。
例子:
varreg=/a*b/;
varreg=/abc+f/g;
3)构造函数方式:
varreg=newRegExp(“表达式”,”附加参数”);
其中“表达式”与“附加参数”的含义与上面那种定义方式中的含义相同。
varreg=newRegExp(“a*b”);
varreg=newRegExp(“abc+f”,”g”);
4)普通方式与构造函数方式的区别
普通方式中的表达式必须是一个常量字符串,而构造函数中的表达式可以是常量字符串,也可以是一个js变量,例如根据用户的输入来作为表达式参数等等:
varreg=newRegExp(document.forms[0].exprfiled.value,”g”);
表达式模式
1)表达式模式,是指表达式的表达方式与样式,即varreg=/表达式/附加参数中的“表达式”怎样去描述?
2)从规范上讲,表达式模式分为简单模式和复合模式。
3)简单模式:
是指通过普通字符的组合来表达的模式,例如
varreg=/abc0d/;
可见简单模式只能表示具体的匹配。
4)复合模式:
是指含有通配符来表达的模式,例如:
varreg=/a+b?
\w/;
其中的+、?
和\w都属于通配符,代表着特殊的含义。
因此复合模式可以表达更为抽象化的逻辑。
下面我们着重说一下复合模式中各个通配符的含义及其使用。
贪婪的、惰性的和支配性的量词
贪婪量词:
先看整个的字符串是不是一个匹配,如果没有发现匹配,它去掉字符串中的最后一个字符,并再次尝试。
直到发现一个匹配字符或者字符串不剩任何字符。
惰性量词:
先看字符串中的第一个字线是不是一个匹配。
如果单独这个字符还不够,就读入下一个字符,组成两个字符的字符串,如果还是没有发现匹配,继续添加字会直到发现一个或者整个字符都检查过也没有匹配。
其工作方式恰好与贪婪相反。
支配量词:
只尝试匹配整个字符串。
如果整个字符串不能产生匹配,不做进一步尝试。
表示方法如下表
贪婪
惰性
支配
零次或一次出现
*?
*+
零次或多次出现
+?
++
一次或多次出现
{n}?
{n}+
恰好n次出现
{n,m}?
{n,m}+
至少n次至多m次出现
{n,}?
{n,}+
至少n次出现
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 正则 表达式 规则