志在指尖
用双手敲打未来

php正则(php正则表达式详解)

php正则

preg_match()函数用于进行正则表达式匹配,成功回来1,否则回来0。
语法:
1
intpreg_match(stringpattern,stringsubject[,arraymatches])
参数阐明:
参数阐明
pattern正则表达式
subject需求匹配检索的目标
matches可选,存储匹配成果的数组,$matches[0]将包括与整个形式匹配的文本,$matches[1]将包括与第一个捕获的括号中的子形式所匹配的文本,以此类推
比如1:
if(preg_match(“/php/i”,”PHPisthewebscriptinglanguageofchoice.”,$matches))
{
print”Amatchwasfound:”.$matches[0];
}
else
{
print”Amatchwasnotfound.”;
}
输出:
1
Amatchwasfound:PHP
在该比如中,因为使用了i修正符,因此会不区分巨细写去文本中匹配php。
注意:
preg_match()第一次匹配成功后就会停止匹配,假如要完成悉数成果的匹配,即搜索到subject结尾处,则需使用preg_match_all()函数。
比如2,从一个URL中获得主机域名
//从URL中获得主机名
preg_match(“/^(http:\/\/)?([^\/]+)/i”,”http://blog.snsgou.com/index.php”,$matches);
$host=$matches[2];
//从主机名中获得后面两段
preg_match(“/[^\.\/]+\.[^\.\/]+$/”,$host,$matches);
echo”域名为:{$matches[0]}”;
输出:
1
域名为:snsgou.com
preg_match_all()
preg_match_all()函数用于进行正则表达式大局匹配,成功回来整个形式匹配的次数(可能为零),假如出错回来FALSE。
语法:
1
intpreg_match_all(stringpattern,stringsubject,arraymatches[,intflags])
参数阐明:
参数阐明
pattern正则表达式
subject需求匹配检索的目标
matches存储匹配成果的数组
flags
可选,指定匹配成果放入matches中的顺序,可供挑选的符号有:
PREG_PATTERN_ORDER:默认,对成果排序使$matches[0]为悉数形式匹配的数组,$matches[1]为第一个括号中的子形式所匹配的字符串组成的数组,以此类推
PREG_SET_ORDER:对成果排序使$matches[0]为第一组匹配项的数组,$matches[1]为第二组匹配项的数组,以此类推
PREG_OFFSET_CAPTURE:假如设定本符号,对每个出现的匹配成果也一起回来其附属的字符串偏移量
下面的比如演示了将文本中一切
标签内的关键字(php)显示为赤色。
$str=”
学习php是一件高兴的事。
一切的phper需求共同努力!
“;
$kw=”php”;
preg_match_all(‘/
([\s\S]*?)<\/pre>/’,$str,$mat);
for($i=0;$i<count($mat[0]);$i++)
{
$mat[0][$i]=$mat[1][$i];
$mat[0][$i]=str_replace($kw,”.$kw.”,$mat[0][$i]);
$str=str_replace($mat[1][$i],$mat[0][$i],$str);
}
echo$str;
?>
输出效果:
简化一下:
$str=”
学习php是一件高兴的事。
一切的phper需求共同努力!
“;
preg_match_all(‘/
([\s\S]*?)<\/pre>/’,$str,$matches);
print_r($matches);
?>
输出:
Array
(
[0]=>Array
(
[0]=>
学习php是一件高兴的事。
[1]=>
一切的phper需求共同努力!
)
[1]=>Array
(
[0]=>学习php是一件高兴的事。
[1]=>一切的phper需求共同努力!
)
)

php
php正则表达式详解

正则表达式:Regularexpression
定义:是负责对字符串做解析比照,从而分析出字符串的构成,以便进一步对字符串做相关的处理。
注:正则表达式答应用户通过运用某种特别字符构建匹配形式,然后把匹配形式与文件中的数据、程序输入或者Web页面的表单输入等方针对象进行比较,依据这些输入中是否包含匹配形式,来执行相应的程序。
正则表达式的语法:(基础)
元字符:
^:匹配指定字符串最初的字符串
$:匹配指定字符串结尾的字符串
.:匹配除\n之外的任何单个字符,替代任何字符
[]:匹配指定范围内的单个字符,替代指定字符
|:在多项之间选择一个进行匹配
\:转义字符
():符号子表达式的开始和完毕方位
*:匹配其左面的子表达式0次或屡次
+:匹配其左面的子表达式1次或屡次
?:匹配其左面的子表达式0次或1次
限定符:
{n}:表明匹配该限定符左面字符n次
{n,}:表明匹配该限定符左面至少n次
{n,m}:表明匹配该限定符左面至少n次,最多m次
转义字符:
\n:一个换行符。等价于\x0a和\cJ
\r:一个回车符。等价于\x0d和\cM
\s:任何空白字符,包含空格、制表符、换页符等。等价于[\f\n\r\t\v]
\S:任何非空白字符。等价于[^\f\n\r\t\v]
\t:一个制表符。等价于\x09和\cI
\v:一个垂直制表符。等价于\x0b和\cK
\f:一个换页符。等价于\x0c和\cL
\cx:由x指明的控制字符。
字符类:
[[:alpha:]]:匹配任何字母
[[:digit:]]:匹配任何数字
[[:alnum:]]:匹配任何字母和数字
[[:space:]]:匹配任何空白字符
[[:upper:]]:匹配任何大写字母
[[:lower:]]:匹配任何小写字母
[[:punct:]]:匹配任何标点符号
[[:xdigit:]]:匹配任何16进制数字,相当于[0-9a-fA-F]
[[:blank:]]:匹配空格和Tab,等价于[\t]
[[:cntrl:]]:匹配一切ASCII0到31之间的控制符
[[:graph:]]:匹配一切的可打印字符,等价于[^\t\n\r\f\v]
[[:print:]]:匹配一切的可打印字符和空格,等价于[^\t\n\r\f\v]
反义:
\W:匹配恣意不是字母,数字,下划线或汉子的字符
\S:匹配恣意不是空白符的字符
\D:匹配恣意非数字的字符
\B:匹配不是单词最初或完毕的方位

未经允许不得转载:IT技术网站 » php正则(php正则表达式详解)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载