当前位置:中国站长下载文章中心网页编程PHP编程 → 正则表达式使用详解

正则表达式使用详解

减小字体 增大字体 作者:编辑整理  来源:互联网  发布时间:2008-9-15 22:06:36
”,“too”,或“2”相匹配。

正则表达式中还有一个较为常用的运算符,即否定符“[^]”。与我们前文所介绍的定位符“^”不同,否定符“[^]”规定目标对象中不能存在模式中所规定的字符串。例如:

/[^A-C]/

上述字符串将会与目标对象中除A,B,和C之外的任何字符相匹配。一般来说,当“^”出现在“[]”内时就被视做否定运算符;而当“^”位于“[]”之外,或没有“[]”时,则应当被视做定位符。

最后,当用户需要在正则表达式的模式中加入元字符,并查找其匹配对象时,可以使用转义符“\”。例如:

/Th\*/

上述正则表达式将会与目标对象中的“Th*”而非“The”等相匹配。

在对正则表达式有了较为全面的了解之后,我们就来看一下如何在Perl,PHP,以及JavaScript/"target="_blank">JavaScript中使用正则表达式。

通常,Perl中正则表达式的使用格式如下:

operator/regular-expression/string-to-replace/modifiers

运算符一项可以是m或s,分别代表匹配运算和替换运算。

其中,正则表达式一项是将要进行匹配或替换操作的模式,可以由任意字符,元字符,或定位符等组成。替换字符串一项是使用s运算符时,对查找到的模式匹配对象进行替换的字符串。最后的参数项用来控制不同的匹配或替换方式。例如:

s/geed/good/

将会在目标对象中查找第一个出现的geed字串,并将其替换为good。如果我们希望在目标对象的全局范围内执行多次查找—替换操作的话,可以使用参数“g”,即s/love/lust/g。

此外,如果我们不需要限制匹配的大小写形式的话,可以使用参数“i”。例如,

m/JewEL/i

上述正则表达式将会与目标对象中的jewel,Jewel,或JEWEL相匹配。

在Perl中,使用专门的运算符“=~”指定正则表达式的匹配对象。例如:

$flag=~s/abc/ABC/

上述正则表达式将会把变量$flag中的字串abc替换为ABC。

下面,我们就在Perl程序中加入正则表达式,验证用户邮件地址格式的有效性。代码如下:

#!/usr/bin/perl
#getinput
print“Whatsyouremailaddress?\n”;
$email=$#@60;STDIN$#@62;;
chomp($email);
#matchanddisplayresult
if($email=~/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/)
{
print(“Youremailaddressiscorrect!\n”);
}
else
 {
print(“Pleasetryagain!\n”);
 }

如果用户更偏爱PHP的话,可以使用ereg()函数进行模式匹配操作。ereg()函数的使用格式如下:
ereg(pattern,string)

其中,pattern代表正则表达式的模式,而string则是执行查找替换操作的目标对象。同样是验证邮件地址,使用PHP编写的程序代码如下:

$#@60;?php
if(ereg(“^([a-zA-Z0-9_+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+”,$email))
 {echo“Youremailaddressiscorrect!”;}
else
 {echo“Pleasetryagain!”;}
?$#@62;
最后,我们在来看一下JavaScript/"target="_blank">JavaScript。JavaScript/"target="_blank">JavaScript1.2中带有一个功能强大的RegExp()对象,可以用来进行正则表达式的匹配操作。其中的test()方法可以检验目标对象中是否包含匹配模式,并相应的返回true或false。

我们可以使用JavaScript/"target="_blank">JavaScript编写以下脚本,验证用户输入的邮件地址的有效性。

$#@60;html$#@62;
$#@60;head$#@62;
 $#@60;scriptlanguage="Javascript1.2"$#@62;
$#@60;!--starthiding
functionverifyAddress(obj)
 {
varemail=obj.email.value;
varpattern=/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;
flag=pattern.test(email);
if(flag)
{
 alert(“Youremailaddressiscorrect!”);
 returntrue;
}
else
 {
alert(“Pleasetryagain!”);
returnfalse;
 }
 }
//stophiding--$#@62;
 $#@60;/script$#@62;
 $#@60;/head$#@62;
$#@60;body$#@62;
$#@60;form$#@62;
 $#@60;inputname="email"type="text"$#@62;
 $#@60;inputtype="submit"$#@62;
 $#@60;/form$#@62;
$#@60;/body$#@62;
 $#@60;/html$#@62;

上一页  [1] [2]