PHP正则表达式

正则表达式介绍

 在PHP中,正则表达式本质上就是一个字符串.要想正则表达式发挥作用,必须将正则表达式在函数中使用.

正则表达式的函数

 PCRE正则函数  pcre

 POSIX正则函数
 
 两条正则函数的功能基本相似,但是PCRE使用范围更广,效率更高,所以学习PCRE这套正则函数.

###正则表达式的组成部分

 正则表达式由四部分组成:正则定界符,原子和原子修饰符(元字符),模式修正符

###正则定界符

 用于定义正则边界的符号就是正则定界符.

 除了数字,字母和\之外的字符都可以用来当做正则表达式的定界符使用(在PHP中),推荐使用/作为正则的定界符.

###原子

组成正则表达式的最小单位就是原子.

1.所有可见的字符都是原子.
2.所有不可见字符都是原子.

既有特殊意义的原子.
\d 表示0-9的数字
\D 表示除了0-9之外的所有字符

\s 表示所有不可见字符
\S 表示所有可见字符

\w 表示数字,字母和_
\W 表示除了数字,字母和_之外的字符

无论哪种原子都表示一个字符!!

###元字符

元字符也叫作原子修饰符.

[] 原子列表

可以指定当前原子的范围,但是原子列表也仅仅表示列表中的一个原子.

格式:   [原子原子原子...]

如果多个原子是连续的,可以使用-连接,例如[123456] -> [1-6]

[^] 排除列表

原子列表的反向应用,表示除了列表之外的字符中的任意一个.

+ 表示一个以上的原子 >=1

* 表示任意个原子    >=0

? 表示0个或1个原子

{m} 表示m个原子

{m,} 表示m个以上的原子

{m,n} 表示m-n个原子

^ 表示必须以制定的字符开头

$ 表示必须以制定的字符结尾

^$ 表示精确查找制定的字符   格式:^规则$

. 表示任意一个字符除了\n 

\b 表示词边界

常见的词边界一般为,空格,标点符号,特殊字符,行的开头和结束,回车换行.

\B  表示非词边界

属于任何英文单词的内容字符都是非词边界,英文,数字和_

| 表示选择关系

注意:表示在|左侧字符和|右侧字符中进行选择,如果需要限定字符,加()解决,只能选一个,不能两个都选。

() 1.改变优先级
   2.将多个原子视为一个原子处理
   3.将内容暂存于内存(模式单元)

###模式修正符

i  ignore  忽略大小写
m  multiline  多行匹配模式
x  忽略正则表达式中的所有空白字符
U  改变贪婪模式(正则表达式默认就是贪婪模式)

在正则表达式中使用.*?组合就 表示非贪婪模式.

###正则函数

preg_match  进行一次正则匹配
preg_match_all  进行多次正则匹配
$pattern='/[a-z]+/';
$str = '最近baidu不太平,baidu又摊上事情了,为baidu默哀';
$num=preg_match($pattern,$str,$result);
$num=preg_match_all($pattern,$str,$result);
echo $num;
var_dump($result);

preg_grep数组过滤
$pattern='/\d+/';
$str =array(123123,'ASDASD',345345,'HYUYRTHJU');
$result=preg_grep($pattern,$str);
var_dump($result);

preg_split 正则切割
$str = 'ad1fk1hgds1gfj1fad1gfh1sagf';
$result=explode('1',$str);


$str = 'ad1fk2hgds3gfj4fad5gfh6sagf';
$result=preg_split('/\d/',$str);
var_dump($result);

执行正则表达式的搜索和替换

$result=preg_replace($pattern,$replace,$str);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值