本文目錄一覽:
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中正則表達式是如何使用的
如果你的正則是對的話,代碼應該如下
$reg = ‘[a-zA-z\s]+’;
preg_match($reg,$string,$matchs);
//結果
$result = ”;
foreach($matchs[1] as $m){
$result .=$m
}
php正則表達式匹配一段中文,中間有換行,空白,應該怎麼寫
有多種處理方法:
1、使用[\s\S]匹配任意字元,而不是使用「.」
2、使用s單行修飾模式,例:$pattern = ‘#abc.*?def#s’; //能匹配abc換行def
3、使用\s*匹配換行和空格,php里\s能匹配空白字元,含換行
php里的中文使用 [\x7f-\xff]表示,因此,使用正則:
$pattern = ‘#[\x7f-\xff]+(?:\s*[\x7f-\xff]+)*#’; 即可
如何用php正則表達式取出「字元」間的字元
PHP使用正則表達式提取字元串中尖括弧、小括弧()、中括弧[]、大括弧{}中的字元示例,需要的朋友可以參考下
複製代碼 代碼如下:
$str=”你好我(愛)[北京]{天安門}”;
echo f1($str); //返回你好
echo f2($str); //返回我
echo f3($str); //返回愛
echo f4($str); //返回北京
echo f5($str); //返回天安門
function f1($str)
{
$result = array();
preg_match_all(“/^(.*)(?:)/i”,$str, $result);
return $result[1][0];
}
function f2($str)
{
$result = array();
preg_match_all(“/(?:)(.*)(?:)/i”,$str, $result);
return $result[1][0];
}
function f3($str)
{
$result = array();
preg_match_all(“/(?:\()(.*)(?:\))/i”,$str, $result);
return $result[1][0];
}
function f4($str)
{
$result = array();
preg_match_all(“/(?:\[)(.*)(?:\])/i”,$str, $result);
return $result[1][0];
}
function f5($str)
{
$result = array();
preg_match_all(“/(?:\{)(.*)(?:\})/i”,$str, $result);
return $result[1][0];
}
PS: (?:字元) 表示不捕獲這個字元。貌似PHP不支持將字元換成括弧。
否則的話可以將環視給嵌套進去,就可以循環匹配了。
PS2:環視:(?!) (?=) (?!) (?=)
有小於號的在右側匹配,沒有的在左側匹配。感嘆號表示不等,等於號表示相等。
PS3:都過了驗證器的驗證,驗證器見參考資料。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/241597.html