1 获取文件扩展名.
2 验证字符串中是否有内容
3关于正则的学习
3.1 得到数组中满足要求的单元 preg_grep
3.2 验证字符串中是否有指定字符。 高级玩法,preg_match_all 将结果置入数组。
3.2 将其中的特殊字符转义。
3.3 正则替换使用//n
3.4 正则替换+代理。
3.5 英文分词.
3.6 取前十位,后面变…
4 常用正则示例
1 获取文件扩展名.
<?php
//方法一:
function extend_1($file_name)
{
$retval="";
$pt=strrpos($file_name, ".");
if ($pt) $retval=substr($file_name, $pt+1, strlen($file_name) - $pt);
return ($retval);
}
//方法二
function extend_2($file_name)
{
$extend = pathinfo($file_name);
$extend = strtolower($extend["extension"]);
return $extend;
}
//方法三
function extend_3($file_name)
{
$extend =explode("." , $file_name);
$va=count($extend)-1;
return $extend[$va];
}
?>
2 验证字符串中是否有内容
if(ereg("www",$str1)) 有则true 无则 flase;
3关于正则的学习
3.1得到数组中满足要求的单元
<?php
$array = array(0=>"111",1=>"2243W2",2=>"333",3=>"aaa");
$fl_array = array_values(preg_grep ("/^(/d+)$/", $array));
print_r ($fl_array) ;
?>
3.2验证字符串中是否有指定字符。
<?
初级玩法.
if( preg_match("/www/","we are the chfwww"))
echo "纯在";
echo strpos("fsdf awwwthefdsafd wwwchf","www",1) ;
$newstring = 'abcdef abcdef';
$pos = strpos($newstring, 'a');
echo $pos;
$email = 'user@example.com';
$domain = strstr($email, '@');
echo $domain; // prints @example.com
高级玩法。preg_match (pattern,str,match)数组的第0位是全匹配,第一位是满足()里面的东西。
$contant="aaa<img src='../images/bannersms.jpg' fdsafds>aaa";
preg_match_all("/<img.+src=('|/")(.+)//1/isU",$contant,$a); 注意这里的很经典的//1 是将第一个()中的东西用来配对.
print_r( $a ); 对数组来解析 $a[0] 为<img src='../images/bannersms.jpg' fdsafds>
()中的内容将后被缓存到数组中去。
3.2 将其中的特殊字符转义。
$textbody = "This book is *very* difficult to find.";
$word = "*very*";
$textbody = preg_replace ("/".preg_quote($word)."/",
"<B>".$word."</B>",
$textbody);
print($textbody);
3.3 正则替换使用//n
$string = "April555# 15, 2003";
$pattern = "/(/w+#) (/d+), (/d+)/i";
$replacement = "/$3 /${1}";
print preg_replace($pattern, $replacement, $string);
3.4正则替换+代理
$text = "April fools day is 04/01/2002 /n";
$text.= "Last christmas was 12/24/2001 /n";
function next_year($matches) {
return $matches[1].($matches[2]+1);
}
echo preg_replace_callback("|(/d{2}//d{2}/)(/d{4})|", "next_year", $text);
3.5 英文分词.
$keywords = preg_split ("/[/s,]+/", "hypertext language, programming",-1,PREG_SPLIT_OFFSET_CAPTURE);
print_r ($keywords);
3.6 取前十位,后面变…
$str = "432.,,.af我fdsa人有的和主产不为这工要在地";
$text = preg_replace("/([./.]{10})(.)*/","/$1...",$str);
echo $text;
?>
常用正则4 常用正则示例
|
|
匹配中文字符的正则表达式: [/u4e00-/u9fa5] |