正則表達(dá)式使用詳細(xì)說明(二)
發(fā)表時(shí)間:2024-02-07 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]在對正則表達(dá)式有了較為全面的了解之后,我們就來看一下如何在Perl,PHP,以及JavaScript/" target="_blank">JavaScript中使用正則表達(dá)式。 通常,Perl中正則表達(dá)式的使用格式如下: operator / regular...
在對正則表達(dá)式有了較為全面的了解之后,我們就來看一下如何在Perl,PHP,以及JavaScript/" target="_blank">JavaScript中使用正則表達(dá)式。
通常,Perl中正則表達(dá)式的使用格式如下:
operator / regular-expression / string-to-replace / modifiers
運(yùn)算符一項(xiàng)可以是m或s,分別代表匹配運(yùn)算和替換運(yùn)算。
其中,正則表達(dá)式一項(xiàng)是將要進(jìn)行匹配或替換操作的模式,可以由任意字符,元字符,或定位符等組成。替換字符串一項(xiàng)是使用s運(yùn)算符時(shí),對查找到的模式匹配對象進(jìn)行替換的字符串。最后的參數(shù)項(xiàng)用來控制不同的匹配或替換方式。例如:
s/geed/good/
將會在目標(biāo)對象中查找第一個(gè)出現(xiàn)的geed字串,并將其替換為good。如果我們希望在目標(biāo)對象的全局范圍內(nèi)執(zhí)行多次查找—替換操作的話,可以使用參數(shù) “g”,即s/love/lust/g。
此外,如果我們不需要限制匹配的大小寫形式的話,可以使用參數(shù) “i ”。例如,
m/JewEL/i
上述正則表達(dá)式將會與目標(biāo)對象中的jewel,Jewel,或JEWEL相匹配。
在Perl中,使用專門的運(yùn)算符“=~”指定正則表達(dá)式的匹配對象。例如:
$flag =~ s/abc/ABC/
上述正則表達(dá)式將會把變量$flag中的字串a(chǎn)bc替換為ABC。
下面,我們就在Perl程序中加入正則表達(dá)式,驗(yàn)證用戶郵件地址格式的有效性。代碼如下:
#!/usr/bin/perl
# get input
print “Whats your email address?\n”;
$email = $#@60;STDIN$#@62;;
chomp($email);
# match and display result
if($email =~ /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/)
{
print(“Your email address is correct!\n”);
}
else
{
print(“Please try again!\n”);
}
如果用戶更偏愛PHP的話,可以使用ereg()函數(shù)進(jìn)行模式匹配操作。ereg()函數(shù)的使用格式如下:
ereg(pattern, string)
其中,pattern代表正則表達(dá)式的模式,而string則是執(zhí)行查找替換操作的目標(biāo)對象。同樣是驗(yàn)證郵件地址,使用PHP編寫的程序代碼如下:
$#@60;?php
if (ereg(“^([a-zA-Z0-9_ +@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+”,$email))
{ echo “Your email address is correct!”;}
else
{ echo “Please try again!”;}
?$#@62;
最后,我們在來看一下JavaScript/" target="_blank">JavaScript。JavaScript/" target="_blank">JavaScript 1.2中帶有一個(gè)功能強(qiáng)大的RegExp()對象,可以用來進(jìn)行正則表達(dá)式的匹配操作。其中的test()方法可以檢驗(yàn)?zāi)繕?biāo)對象中是否包含匹配模式,并相應(yīng)的返回true或false。
我們可以使用JavaScript/" target="_blank">JavaScript編寫以下腳本,驗(yàn)證用戶輸入的郵件地址的有效性。
$#@60;html$#@62;
$#@60;head$#@62;
$#@60;script language="Javascript1.2"$#@62;
$#@60;!-- start hiding
function verifyAddress(obj)
{
var email = obj.email.value;
var pattern = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;
flag = pattern.test(email);
if(flag)
{
alert(“Your email address is correct!”);
return true;
}
else
{
alert(“Please try again!”);
return false;
}
}
// stop hiding --$#@62;
$#@60;/script$#@62;
$#@60;/head$#@62;
$#@60;body$#@62;
$#@60;form onSubmit="return verifyAddress(this);"$#@62;
$#@60;input name="email" type="text"$#@62;
$#@60;input type="submit"$#@62;
$#@60;/form$#@62;
$#@60;/body$#@62;
$#@60;/html$#@62;