正则表达式

原子

. 任意一个字符

\w 字母、数字、下划线

[abc] 它里面的任意一个字符

[^abc] 它里面除了abc的任意一个字符

() 它里面的所有人代表一个单元

\d 任意一个数字

\D 任意一个非数字

\w 任意一个字母、数字、下划线

\W 除了字母、数字、下划线以外的任意一个字符

\s 空白字符

\S  除了空白字符以外任意一个字符

 

元字符:

 *  0个、一个、多个

+ 一个、多个

? 0个、一个

| 或

^ 以什么开关

$ 以什么结尾

\b 词边缘

\B 非词边缘

{2} 2个原子  // $sub="php is veryvery much" ; $ptn='/(very){2}/'

{2,} 2个以上原子

{2,5} 2-5个以上原子

模式修正符

/正则表达式/U

i 忽略大小写

$str='LINUX and php are lamp or linux hello world'

$ptn='/linux/i'

preg_match_all($ptn,$str,$arr);

m 视为多行

$str="LINUX and php are lamp \n linux hello world"

$ptn='/^linux/im'

preg_match_all($ptn,$str,$arr);

s 视为一行

$str="LINUX and php are lamp \n linux hello world"

$ptn='/.*/s'

preg_match_all($ptn,$str,$arr);

U 贪婪模式,最大模式

$str="<b>LINUX</b> and php are lamp or <b>linux</b> hello world"

$ptn='/<b>.*<\/b>/U'

或者 $ptn='/<b>[^<]*<\/b>/'

preg_match_all($ptn,$str,$arr);

e 替换的时候用的,可以用函数加工向后

$str="123 linux"

$ptn='/\d+\s(w+)/e'

$rep='strtoupper(\\1)' 

$str2=preg_replace($ptn,$rep,$str);

 

$str="12-05-2017";

$ptn='/(\d+)-(\d+)-(\d+)/';

$rep=‘$3/$1/$2’;

$str2=preg_replace($ptn,$rep,$str);

 

 

$str="[b]bbbbb[/b][i]iiiii[/i][img]hello.gif[/img]";

$ptn=array(

      '/\[b\](.+)\[\/b\]/',

    '/\[i\](.+)\[\/i\]/',

    '/\[img\](.+)\[\/img\]/',

);

$rep=array(

 '<b>$1</b>',

 '<i>$1</i>',

 '<img src="$1">',

);

$str2=preg_replace($ptn,$rep,$str);

转载于:https://my.oschina.net/u/229425/blog/1540797

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值