php入门之正则表达式
在处理一些复杂的字符串用普通字符串处理函数无法处理干净,正则表达式就有了它的用武之地。
下面谈谈正则表达式的基本用法
<?php
int preg_match($modle,$string) //第一字符串当匹配模式,第二字符串是被匹配字符串,函数返回值是一个整型,匹配成功返回1,失败返回0;
?>
下面是对匹配模式中得用到的量词﹑元字符﹑修饰符.
看看量词列表
| + | 匹配任何至少包含一个前导字符的字符串 |
| * | 匹配任何零个或者多个前导字符的字符串 |
| ? | 匹配任何零个或者一个前导字符的字符串 |
| . | 匹配任意字符(一个点对应一个字符) |
| {x,y} |
匹配任何包含X到Y个前导字符串 |
| | |
匹配字符串左边或者右边 |
| $ |
从结尾开始匹配 |
| ^ |
从开头开始匹配 |
一个匹配例子:
<?php
$modle = '/ph+p/';
$string = 'php' ;
echo preg_match($modle,$string);
?>
这样显示结果就似乎:1。看完了这个例子,其他结果量词用法也是一样的。
看看元字符列表
| [a-z] | 匹配任何小写字母从a到z的字符串 |
| [0-9] | 匹配任何数字从0到9的数 |
| [a-zA-Z0-9] | 匹配任何大小写从a-z,数字从0-9的字符串(与[\w]效果相同) |
还有几个元字符如:[\W](跟[\w]相反),\s表示匹配空白字符,而\S这是匹配非空白字符。
元字符应用例子
<?php
$modle = '/([\w\_\.]{2,255})@([\w-]{1,}).([a-z]{2,4})/';
$string = 'dengwz7788@gmail.com';
if (preg_match($modle,$string)==1)
{ echo "邮件名正常";}
else
{ echo "邮件名蛋疼";}
?>
上面是一个对邮件格式判断的小应用,也是元字符的综合应用。
最好看看 修饰符
| i | 完全不区分大小写 |
| m | 在匹配的前面或后面采用多行模式 |
| x | 忽略匹配字符串中得空格 |
| A | 强制从头开始匹配 |
| U | 禁止从贪心问题 |
下面举一个例子,针对UUB解析中得贪心问题
<?php
//我们的这次匹配的目的就是模拟UUB解析器,讲[b][/b]转换成<strong></strong>
$modle = '/\[b\](.*)\[\/b\]/';
$replace = '<strong>\1</strong>';
$string = 'this is [b]lili[/b],that is [b]李立[/b]';
echo preg_replace($modle, $replace, $string);
echo "<br />";
$modle = '/\[b\](.*)\[\/b\]/U';
$replace = '<strong>\1</strong>';
$string = 'this is [b]lili[/b],that is [b]李立[/b]';
echo preg_replace($modle, $replace, $string)
?>
我就不多讲了,结果一目了然,,正则表达的基础就到这里,如果还有什么不懂的,留言吧~~

浙公网安备 33010602011771号