在對(duì)正則表達(dá)式有了較為全面的了解之后,我們就來(lái)看一下如何在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í),對(duì)查找到的模式匹配對(duì)象進(jìn)行替換的字符串。最后的參數(shù)項(xiàng)用來(lái)控制不同的匹配或替換方式。例如: s/geed/good/ 將會(huì)在目標(biāo)對(duì)象中查找第一個(gè)出現(xiàn)的geed字串,并將其替換為good。如果我們希望在目標(biāo)對(duì)象的全局范圍內(nèi)執(zhí)行多次查找—替換操作的話(huà),可以使用參數(shù) “g”,即s/love/lust/g。 此外,如果我們不需要限制匹配的大小寫(xiě)形式的話(huà),可以使用參數(shù) “i ”。例如, m/JewEL/i 上述正則表達(dá)式將會(huì)與目標(biāo)對(duì)象中的jewel,Jewel,或JEWEL相匹配。 在Perl中,使用專(zhuān)門(mén)的運(yùn)算符“=~”指定正則表達(dá)式的匹配對(duì)象。例如: $flag =~ s/abc/ABC/ 上述正則表達(dá)式將會(huì)把變量$flag中的字串a(chǎn)bc替換為ABC。 下面,我們就在Perl程序中加入正則表達(dá)式,驗(yàn)證用戶(hù)郵件地址格式的有效性。代碼如下: #!/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”); } 如果用戶(hù)更偏愛(ài)PHP的話(huà),可以使用ereg()函數(shù)進(jìn)行模式匹配操作。ereg()函數(shù)的使用格式如下: ereg(pattern, string) 其中,pattern代表正則表達(dá)式的模式,而string則是執(zhí)行查找替換操作的目標(biāo)對(duì)象。同樣是驗(yàn)證郵件地址,使用PHP編寫(xiě)的程序代碼如下: $#@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; 最后,我們?cè)趤?lái)看一下JavaScript/" target="_blank">JavaScript。JavaScript/" target="_blank">JavaScript 1.2中帶有一個(gè)功能強(qiáng)大的RegExp()對(duì)象,可以用來(lái)進(jìn)行正則表達(dá)式的匹配操作。其中的test()方法可以檢驗(yàn)?zāi)繕?biāo)對(duì)象中是否包含匹配模式,并相應(yīng)的返回true或false。 我們可以使用JavaScript/" target="_blank">JavaScript編寫(xiě)以下腳本,驗(yàn)證用戶(hù)輸入的郵件地址的有效性。 $#@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;
|