正則表達式之——POSIX正則表達式函數

POSIX正則表達是PHP編譯器的默認風格,PHP中還提供了許多POSIX正則表達式函數,例如ereg()、eregi()、split()和sql_regcase()等。php

1. ereg()函數

ereg()函數能夠再字符串中查找與指定正則表達式模式相匹配的子串,其語法格式爲:正則表達式

bool ereg ( string pattern, string string [, array regs] )

功能說明sql

以區分大小寫的方式在string中尋找與給定的正則表達式pattern所匹配的子串。 若是找到與pattern中圓括號內的子模式相匹配的子串而且函數調用給出了第三個參數regs,則匹配項將被存入regs數組中。$regs[1] 包含第一個左圓括號開始的子串,$regs[2] 包含第二個子串,以此類推。$regs[0] 包含整個匹配的字符串。 若是在string中找到pattern模式的匹配則返回 true,若是沒有找到匹配或出錯則返回 falseexpress

參數說明數組

pattern:指定相應的正則表達式框架

string:指定須要進行模式匹配的字符串函數

regs:用來存放匹配結果,其中的regs[0]爲原字符串string;regs[1]爲第一個符合匹配規則的字符串;regs[2]爲第二個符合匹配規則的字符串,餘下依次類推。若省略該參數,則表示只是單純匹配,若匹配則成功則返回true,不然返回false。spa

例1code

      使用POSIX字符簇進行驗證,其功能是校驗一個字符串中是否含有字母字符。代碼以下:orm

<?php
$string="a12345";
$pattern="[[:alpha:]]";
if(ereg($pattern, $string)){
echo "在\"$string\"中至少含有一個字母字符";
}
else{
echo "在\"$string\"中不含有任何字母字符";
}
?>


例2

如下代碼片段接受 ISO 格式的日期(YYYY-MM-DD)而後以 DD.MM.YYYY 格式顯示:

<?php
if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs)) {
echo "$regs[3].$regs[2].$regs[1]";
} else {
echo "Invalid date format: $date";
}
?>

注eregi()函數的用法與ereg()函數相同,可是這個函數不區分大小寫。

2. split()函數

split()函數使用正則表達式來把字符串拆分爲較小的塊,做爲一個數組返回。若是出現錯誤,則split()返回false。使用split()函數還能夠根據須要選擇要返回多少個小塊。split()函數的語法格式以下:

array split ( string pattern, string string [, int limit] )

功能說明

本函數返回一個字符串數組,每一個單元爲string經區分大小寫的正則表達式pattern做爲邊界分割出的子串。若是設定了limit,則返回的數組最多包含limit個單元,而其中最後一個單元包含了string中剩餘的全部部分。若是出錯,則 split() 返回 FALSE

參數說明:

pattern:指定相應的正則表達式

string:指定須要進行分割的字符串

limit:指定將字符串string切分的最大數目。該參數的默認值爲-1,表示沒有限制。

例3

使用split()函數進行拆分字符串「3*5+i/6-12」,代碼以下:

<?php
$expression="3*5+i/6-12";
$pattern="[+/-]";
$limit=5;
$part=split($pattern, $expression, $limit);
print_r($part);
?>

結果爲:

Array ( [0] => 3*5 [1] => i [2] => 6 [3] => 12 )

3. ereg_replace()函數

ereg_replace()函數能夠用來查找和替換子字符串,該函數與字符串處理函數str_replace()實現的功能的功能是同樣的,其語法格式以下:

string ereg_replace ( string pattern, string replacement, string string )

功能說明:

該函數在string中掃描與pattern匹配的部分,並將其替換爲replacement。返回替換後的字符串,若是沒有可供替換的匹配的選項則會返回原字符串。

參數說明:

       pattern:指定的相應正則表達式

       replacement:指定替換的內容

       string:指定須要進行替換的字符串

       ereg_replace()函數將在string中查找符合pattern規則的字符串,而且用replacement進行替換。

例4:

使用ereg_replace()函數將字符串「歡迎來到上海」中的「上海」替換爲「巴中」,代碼以下:

<?php  
$pattern="上海";  
$string="歡迎來到上海";  
$replacement="巴中";  
echo ereg_replace($pattern,$replacement,$string);  
?>

結果:

        歡迎來到巴中


引用文獻:

《大道PHP LAMP+Zend+開源框架整合開發與實戰》

《PHP手冊》


未完待續…

相關文章
相關標籤/搜索