本文目錄一覽:
php 怎麼使用正則
/**
通用正則
參數:
正則,模式,字符串
說明:
通用正則處理函式,可以用來獲取,替換,檢查內容
返回:
匹配到的內容或Boolean值
用法:
使用之前先把引號之類的替換乾凈
$html=Fun::_file_get_contents(”);$html=strtr($html,array(“‘”=”,'”‘=”));
var_dump(Fun::Preg(“title(.*)”,’one’,$html)); //抓取一條內容
var_dump(Fun::Preg(“/ href=(.[^ ]*)/i”,’arr’,$html)); //抓取內容列表
echo Fun::Preg(“abc|cde”,’rep’,$html); //把內容替換掉
if(Fun::Preg(” href=.[^’\” ]*”,’chk’,$html)){ //判斷是否存在
echo ‘true’;
}
//匹配所有的href
$href=Fun::Preg(‘/ href=[“|\’]?([^”\’ ]+)[“|\’]?/i’,’arr’,$html);
/**/
public static function Preg($r,$t,$html){
switch(strtolower($t)){
case ‘arr’:
preg_match_all(“{$r}”,$html,$arr,PREG_PATTERN_ORDER);
return $arr;
break;
case ‘one’:
preg_match(“/{$r}/iU”,$html,$arr);
return $arr;
break;
case ‘rep’:
return preg_replace(“/{$r}/i”,”,$html);
break;
case ‘chk’:
return preg_match(“/{$r}/iU”,$html);
break;
default:
return FALSE;
}
}
php 正則 來高手
在正則表達式中,\ 是個特殊符號,代表轉義符。
比如, 如果你希望匹配一個”*”字符, 就需要在模式中寫為”\*”,如果要匹配一個反斜線, 那麼在模式中使用」\\」。
在表達式 \為什麼,([0-9]{1,6}),([0-9]{1,6} 中的 \ 沒有發生作用,因為在正則表達式中,\ 要與字母或數字才能代表這是個正確的轉義,因此,能夠匹配「為什麼」。
而在 /\bbs,([0-9]{1,6}),([0-9]{1,6})/ 中,\b 在正則表達式中表示單詞邊界,因此不能匹配bbs
php 使用正則表達式是否具有優勢和缺點?
優點:
正則表達式可以處理比較複雜的文本數據處理如匹配、替換、分割,比着php中的原生字符串函數功能更強,比如處理url,處理文本,驗證規則
缺點:
有強大的功能,但是處理速度比着原生字符串函數要慢
原則上能用原生的函數不用php中正則表達式
PHP 正則問題
1.正則式應該為/\\\\/,\\\\被字符串轉移後變成\\,再被正則轉義變成\
2.默認preg正則是貪婪的,也就是說.,*,+之類的會匹配儘可能多的字符。可以在正則式後加上U標誌使整個正則式非貪婪。具體請百度「正則 貪婪」
原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/130003.html