二 字串和正規表示式 正規表示式函式

2021-05-24 00:40:20 字數 2258 閱讀 8185

正規表示式函式

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介面,如果繼承此藉口,那麼在格式化函式中,會...