本文目录一览:
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标志使整个正则式非贪婪。具体请百度“正则 贪婪”