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 = '[email protected]';

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)

?>

   我就不多讲了,结果一目了然,,正则表达的基础就到这里,如果还有什么不懂的,留言吧~~

转载于:https://www.cnblogs.com/dengwz7788/archive/2011/10/08/2202230.html

猜你喜欢

转载自blog.csdn.net/weixin_34310127/article/details/93524913