正規表示式函式
1.preg_match()函式,實現字串的比對
int preg_match(string pattern, string subject, array [matches]);
返回值: 整數/陣列
本函式以 pattern 的規則來解析比對字串 subject。比對結果返回的值放在陣列引數 matches 之中,matches[0] 內容就是原字串 subject、matches[1] 為第乙個合乎規則的字串、matches[2] 就是第二個合乎規則的字串,餘類推。若省略引數 matches,則只是單純地比對,找到則返回值為 true。
e.x :
<?php
preg_match ( "/^(http:)?([^//]+)/i", "http://www.php.net/index.html" , $matches ); // 從 url 中取得主機名
$host = $matches[2];
echo $host."
";preg_match ( "/[^/.//]+[/.][^/.//]+$/" , $host , $matches ); // 從主機名中取得後面兩段
$domain = $matches[0];
echo "domain name is: $domain";
?>
執行結果:
www.php.net
domain name is: php.net
2.preg_replace()實現正規表示式的替換.注意本函式區分字母大小。寫語法如下:
mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit])//在 subject 中搜尋 pattern 模式的匹配項並替換為 replacement。如果指定了 limit,則僅替換 limit 個匹配,如果省略 limit 或者其值為 -1,則所有的匹配項都會被替換。
e.x :
<?php
$pattern = array("/姓名/","/姓別/","/年齡/");
$replacement = array("肖紅陽","男","20");
$subject = "姓名 姓別 年齡";
$limit = 8;
echo "替換之前:".$subject."
";echo "
替換輸出:".preg_replace($pattern,$replacement,$subject,$limit);
?>
執行結果:
替換之前:姓名 姓別 年齡
替換輸出:肖紅陽 男 20
e.x 實現preg_replace中的replacement經過運算後再替換工能,是在正規表示式中加入e模式修正符
<?php
$mode = "/(a)/ie";
$replace = "md5(//1)"; //由於上行中加入了模式修正符"e"所以這裡正則引用
//1會經過md5()運算後再返回結果
$subject = "12az4a324b1423c";
$limit = 1;
echo preg_replace($mode,$replace,$subject,$limit); //$limit為限制替換的次數
?>
執行結果:
120cc175b9c0f1b6a831c399e269772661z4a324b1423c
3.split使用正規表示式將字串分割到陣列中,本函式返回乙個字串陣列,失敗則返回false.語法如下:
array split(string pattern,string string[,int limit])//pattern為正規表示式,string 為要被分割的字串,limit為分割以後得到的陣列的元素個數
執行結果:
二 字串和正規表示式 正規表示式的模式修正符
正規表示式的模式修正符 模式修正符是為正規表示式增強和補充的乙個功能,使用在正則之外.格式 正則 模式修正符 常用模式修正符有 i 正則內容在匹配時候不區分大小寫 預設是區分的 m 在匹配首內容或者尾內容時候採用多行識別匹配 s 將轉義回車 n取消是為單行匹配如.x 忽略正則中的空白 a 強制從頭開...
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
九 字串和正規表示式
在c 中string關鍵字實際對映為system string類,它實際上是乙個不可變的資料型別.system text stringbuilder類為可變資料型別,提高了追加字串的效率.可設定容量及最大容量,超出最大容量丟擲異常.iformattable介面,如果繼承此藉口,那麼在格式化函式中,會...