php 正则 年,php-练习正则表达式练习-2019年10月17日

一、原子

1.普通字符

实例

$pattem = '/a/';

$subject = '11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk';

$a = preg_match_all($pattem,$subject,$matches);

var_dump($a);   // 输出匹配次数

var_dump($matches); // 输出匹配结果

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行效果图

639b1bede49ee99edc90294cdb13c076.png

2.非打印字符

实例

$pattem = '/\n/';

$subject = '111122223333444455\x0d55666677778888999900000

aaabbbcccdddeeefffggghhhiiijjjjkkkk';

$a = preg_match_all($pattem,$subject,$matches);

var_dump($a);   // 输出匹配次数

var_dump($matches); // 输出匹配结果

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行效果图

fd32fae6732cc2dee763b7e8e58d1ff3.png

3.自定义字符

实例

$pattem = '/[a-z]/';

$subject = '11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk';

$a = preg_match_all($pattem,$subject,$matches);

var_dump($a);   // 输出匹配次数

var_dump($matches); // 输出匹配结果

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行效果图

7a2447eb940af927f0bce44f549b6afb.png

二、元字符

实例

$pattem = '/12./';

$subject = '11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk OUYANGKE OUYANGKE zhulaoshi zhulaoshi';

$a = preg_match_all($pattem,$subject,$matches);

var_dump($a);   // 输出匹配次数

var_dump($matches); // 输出匹配结果

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行效果图

82a9a955acae94461fe2e863e74de8e8.png

( | ) 括号里的匹配符,匹配2个或多个分支

实例

$pattem = '/12|67/';

$subject = '11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';

$a = preg_match_all($pattem,$subject,$matches);

var_dump($a);   // 输出匹配次数

var_dump($matches); // 输出匹配结果

运行实例 »

点击 "运行实例" 按钮查看在线实例运行效果图

运行效果图

b3d68264df16629f35c03dbfb7c86e15.png

( [ ] ) 括号里的匹配符,匹配方括号内指定的任意一个原子

实例

$pattem = '/[1234]/';

$subject = '11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';

$a = preg_match_all($pattem,$subject,$matches);

var_dump($a);   // 输出匹配次数

var_dump($matches); // 输出匹配结果

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行效果图

f4ebd8a2dad306462a4ef41b46d437ae.png

[^ ]括号里的匹配符, 匹配除方括号内指定原子以外的任意一个原子

实例

$pattem = '/[^1234]/';

$subject = '11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';

$a = preg_match_all($pattem,$subject,$matches);

var_dump($a);   // 输出匹配次数

var_dump($matches); // 输出匹配结果

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行效果图

be0e9c71f999d94083bbaa138055c113.png

( ^ ) 括号里的匹配符,匹配字符串开始位置,一串字符串,必须从这里开始

实例

$pattem = '/^[a-z]/';

$subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';

$a = preg_match_all($pattem,$subject,$matches);

var_dump($a);   // 输出匹配次数

var_dump($matches); // 输出匹配结果

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行效果图

e5d3d73e0085830517395b433e417f1d.png

( $ ) 括号里的匹配符,匹配字符串结束位置

实例

$pattem = '/[a-z]$/';

$subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';

$a = preg_match_all($pattem,$subject,$matches);

var_dump($a);   // 输出匹配次数

var_dump($matches); // 输出匹配结果

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行效果图

b13d27266585eebf152ac924154a6658.png

三、量词(限定符)

{n} 表示前面原子出现n次

实例

$pattem = '/[0-9]{3}/';

$subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';

$a = preg_match_all($pattem,$subject,$matches);

var_dump($a);   // 输出匹配次数

var_dump($matches); // 输出匹配结果

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行效果图

832a4141f6edd82ba5173cf73c05305b.png

{n,} 表示前面原子出现不少于n次

实例

$pattem = '/[0-9]{1,}/';

$subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';

$a = preg_match_all($pattem,$subject,$matches);

var_dump($a);   // 输出匹配次数

var_dump($matches); // 输出匹配结果

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行效果图

f15e80d32aee685d5daeb2d5c9fbbc61.png

{n,m} 表示前面原子至少出现n次,最多出现m次

实例

$pattem = '/[0-9]{1,3}/';

$subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';

$a = preg_match_all($pattem,$subject,$matches);

var_dump($a);   // 输出匹配次数

var_dump($matches); // 输出匹配结果

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行效果图

fb2ac68c6a17084e81c23d6b95eb5eab.png

( * ) 匹配0次、1次或多次前面原子

实例

$pattem = '/[0-9]*/';

$subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';

$a = preg_match_all($pattem,$subject,$matches);

var_dump($a);   // 输出匹配次数

var_dump($matches); // 输出匹配结果

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行效果图

bb15070eae7283812efc9034aa8f6dda.png

( + ) 匹配1次或多次前面原子

实例

$pattem = '/[0-9]+/';

$subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';

$a = preg_match_all($pattem,$subject,$matches);

var_dump($a);   // 输出匹配次数

var_dump($matches); // 输出匹配结果

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行效果图

107d1b461045b651077f4e092dea7193.png

(?) 匹配0次或1次前面原子

实例

$pattem = '/[0-9]?/';

$subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';

$a = preg_match_all($pattem,$subject,$matches);

var_dump($a);   // 输出匹配次数

var_dump($matches); // 输出匹配结果

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行效果图

73503550ab82c2b14fa8e7d01d395b88.png

四、预定义字符

\d 匹配任意一个十进制数

等价于 [0-9]

实例

$pattem = '/\d/';

$subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';

$a = preg_match_all($pattem,$subject,$matches);

var_dump($a);   // 输出匹配次数

var_dump($matches); // 输出匹配结果

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行效果图

553408da3d2cfbeffe8c1af84357df09.png

\D 匹配任意一个除十进制以外的字符

等价于 [^0-9]

实例

$pattem = '/\D/';

$subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';

$a = preg_match_all($pattem,$subject,$matches);

var_dump($a);   // 输出匹配次数

var_dump($matches); // 输出匹配结果

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行效果图

5cde5c54d85e8bb09ef55c1befae31a9.png

\w 匹配任意一个字母/数字/下划线字符

等价于 [0-9a-zA-Z_]

实例

$pattem = '/\w/';

$subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';

$a = preg_match_all($pattem,$subject,$matches);

var_dump($a);   // 输出匹配次数

var_dump($matches); // 输出匹配结果

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行效果图

7f968898563e22cf6ae4e2f06aab4cc0.png

\W 匹配任意一个除字母/数字/下划线之外的字符

实例

$pattem = '/\W/';

$subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';

$a = preg_match_all($pattem,$subject,$matches);

var_dump($a);   // 输出匹配次数

var_dump($matches); // 输出匹配结果

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行效果图

265910841ab6373dcbcc2724917e7721.png

\s 匹配任意一个空白字符(非打印)

实例

$pattem = '/\s/';

$subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';

$a = preg_match_all($pattem,$subject,$matches);

var_dump($a);   // 输出匹配次数

var_dump($matches); // 输出匹配结果

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行效果图

2ea7eee9d97da7dbdbbb7bb7e31292fa.png

\S 匹配任意一个除空白字符以外的字符

实例

$pattem = '/\S/';

$subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';

$a = preg_match_all($pattem,$subject,$matches);

var_dump($a);   // 输出匹配次数

var_dump($matches); // 输出匹配结果

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行效果图

f6060b3298565ebdf96f7b297f82f211.png

\b 匹配单词边界

实例

$pattem = '/ouyangke\b/';

$subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';

$a = preg_match_all($pattem,$subject,$matches);

var_dump($a);   // 输出匹配次数

var_dump($matches); // 输出匹配结果

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行效果图

744cfd864d40fc5416075870d0ec5805.png

\B 匹配除单词边界以外的部分

实例

$pattem = '/yang\B/';

$subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';

$a = preg_match_all($pattem,$subject,$matches);

var_dump($a);   // 输出匹配次数

var_dump($matches); // 输出匹配结果

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行效果图

d411536c8b89228c0f781cd93317caf8.png

五、特殊字符

特殊字符需要在符号前面增加\转义

需转义符号: \ * + ? . | ^ $ [ ] ( )

实例

$pattem = '/ [\+\\\*\?\.\|\^\$\[\]\(\)]/';

$subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk * + ? . | ^ $ [ ] ( ) ouyangke ouyangke zhulaoshi zhulaoshi';

$a = preg_match_all($pattem,$subject,$matches);

var_dump($a);   // 输出匹配次数

var_dump($matches); // 输出匹配结果

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行效果图

ad2f3b694c55cdb02e55fe75d66c545a.png

六、分组符

( ) 匹配其整体为一个原子[模式单元],即多个原子组成的大原子

实例

$pattem = '/(欧阳克|朱老师)|([0-9])/';

$subject = '我是欧阳克 我是朱老师 asdfsdf212fdhdfgh54674fghjfghjk78907dfghdfghdfgh';

$a = preg_match_all($pattem,$subject,$matches);

var_dump($a);   // 输出匹配次数

var_dump($matches); // 输出匹配结果

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行效果图

5f7941319ea2c75b6ce4150bf82e150b.png

八、修正符(在界定符后面)

正则表达式有:贪婪模式和懒惰模式

正则表达式默认是贪婪模式

代码示例1:贪婪模式

实例

$pattem = '/ou.*/';

$subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';

$a = preg_match_all($pattem,$subject,$matches);

var_dump($a);   // 输出匹配次数

var_dump($matches); // 输出匹配结果

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行效果图

0fa520d45eb83848bd111bf9f3627e8a.png

代码示例2:( U ) 表示取消贪婪模式

实例

$pattem = '/ou.*/U';

$subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';

$a = preg_match_all($pattem,$subject,$matches);

var_dump($a);   // 输出匹配次数

var_dump($matches); // 输出匹配结果

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行效果图

2a0a0c314fd28ed664b5ed6c7a63b17c.png

( i ) 表示和模式进行匹配时忽略大小写

实例

$pattem = '/ouyangke/i';

$subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk OUYANGKE OUYANGKE ZHULAOSHI ZHULAOSHI';

$a = preg_match_all($pattem,$subject,$matches);

var_dump($a);   // 输出匹配次数

var_dump($matches); // 输出匹配结果

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行效果图

675d459a1bcef6bdf22bda1994074b22.png

( s ) 被匹配的字符串将视为一行来看,包括换行符,换行符将被视为普通字符串。

实例

$pattem = '/OUYANGKE./s';

$subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk\n OUYANGKE

OUYANGKE

ZHULAOSHI ZHULAOSHI';

$a = preg_match_all($pattem,$subject,$matches);

var_dump($a);   // 输出匹配次数

var_dump($matches); // 输出匹配结果

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行效果图

1a311765d4b48a720d08725a928ddacc.png

( x ) 模式中的空白忽略不计

实例

$pattem = '/   0

0

0/x';

$subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk\n OUYANGKE OUYANGKE ZHULAOSHI ZHULAOSHI';

$a = preg_match_all($pattem,$subject,$matches);

var_dump($a);   // 输出匹配次数

var_dump($matches); // 输出匹配结果

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行效果图

9221d149d93ae5ef58cf39c8341dd394.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值