本文目录一览:
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:都过了验证器的验证,验证器见参考资料。