Blogger Information
Blog 27
fans 0
comment 0
visits 26621
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
php-练习正则表达式练习-2019年10月17日
渊的博客
Original
1156 people have browsed it

一、原子

1.普通字符

实例

<?php

  $pattem = '/a/';
    $subject = '11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk';
    $a = preg_match_all($pattem,$subject,$matches);
    var_dump($a);   // 输出匹配次数
    var_dump($matches); // 输出匹配结果

运行实例 »

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

运行效果图

a.png

2.非打印字符

实例

<?php

  $pattem = '/\n/';
    $subject = '111122223333444455\x0d55666677778888999900000
    aaabbbcccdddeeefffggghhhiiijjjjkkkk';
    $a = preg_match_all($pattem,$subject,$matches);
    var_dump($a);   // 输出匹配次数
    var_dump($matches); // 输出匹配结果

运行实例 »

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

运行效果图

非打印字符.png

3.自定义字符

实例

<?php

  $pattem = '/[a-z]/';
    $subject = '11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk';
    $a = preg_match_all($pattem,$subject,$matches);
    var_dump($a);   // 输出匹配次数
    var_dump($matches); // 输出匹配结果

运行实例 »

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

运行效果图

 

自定义字符.png

二、元字符

实例

<?php

   $pattem = '/12./';
    $subject = '11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk OUYANGKE OUYANGKE zhulaoshi zhulaoshi';
    $a = preg_match_all($pattem,$subject,$matches);
    var_dump($a);   // 输出匹配次数
    var_dump($matches); // 输出匹配结果

运行实例 »

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

运行效果图

原字符.png

 

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

实例

<?php

$pattem = '/12|67/';
    $subject = '11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';
    $a = preg_match_all($pattem,$subject,$matches);
    var_dump($a);   // 输出匹配次数
    var_dump($matches); // 输出匹配结果

运行实例 »

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

运行效果图

分支匹配.png

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

实例

<?php

 $pattem = '/[1234]/';
    $subject = '11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';
    $a = preg_match_all($pattem,$subject,$matches);
    var_dump($a);   // 输出匹配次数
    var_dump($matches); // 输出匹配结果

运行实例 »

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

运行效果图

指定数字.png

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


实例

<?php

 $pattem = '/[^1234]/';
    $subject = '11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';
    $a = preg_match_all($pattem,$subject,$matches);
    var_dump($a);   // 输出匹配次数
    var_dump($matches); // 输出匹配结果

运行实例 »

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

运行效果图

除指定以外的其它字符.png

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


实例

<?php

$pattem = '/^[a-z]/';
    $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';
    $a = preg_match_all($pattem,$subject,$matches);
    var_dump($a);   // 输出匹配次数
    var_dump($matches); // 输出匹配结果

运行实例 »

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

运行效果图

字母a开头.png

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


实例

<?php

$pattem = '/[a-z]$/';
    $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';
    $a = preg_match_all($pattem,$subject,$matches);
    var_dump($a);   // 输出匹配次数
    var_dump($matches); // 输出匹配结果

运行实例 »

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

运行效果图

匹配结束位置.png


三、量词(限定符)

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


实例

<?php

 $pattem = '/[0-9]{3}/';
    $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';
    $a = preg_match_all($pattem,$subject,$matches);
    var_dump($a);   // 输出匹配次数
    var_dump($matches); // 输出匹配结果

运行实例 »

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

运行效果图

连续出现次数.png

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


实例

<?php

 $pattem = '/[0-9]{1,}/';
    $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';
    $a = preg_match_all($pattem,$subject,$matches);
    var_dump($a);   // 输出匹配次数
    var_dump($matches); // 输出匹配结果

运行实例 »

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

运行效果图

不少于1次.png

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


实例

<?php

$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); // 输出匹配结果

运行实例 »

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

运行效果图

出现至少N次.png

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


实例

<?php

 $pattem = '/[0-9]*/';
    $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';
    $a = preg_match_all($pattem,$subject,$matches);
    var_dump($a);   // 输出匹配次数
    var_dump($matches); // 输出匹配结果

运行实例 »

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

运行效果图

0次一次或多资.png

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


实例

<?php

$pattem = '/[0-9]+/';
    $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';
    $a = preg_match_all($pattem,$subject,$matches);
    var_dump($a);   // 输出匹配次数
    var_dump($matches); // 输出匹配结果

运行实例 »

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

运行效果图

一次或多次.png

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


实例

<?php

 $pattem = '/[0-9]?/';
    $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';
    $a = preg_match_all($pattem,$subject,$matches);
    var_dump($a);   // 输出匹配次数
    var_dump($matches); // 输出匹配结果

运行实例 »

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

运行效果图

0次或一次.png

四、预定义字符

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

等价于 [0-9]


实例

<?php

  $pattem = '/\d/';
    $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';
    $a = preg_match_all($pattem,$subject,$matches);
    var_dump($a);   // 输出匹配次数
    var_dump($matches); // 输出匹配结果

运行实例 »

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

运行效果图

数字.png

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

等价于 [^0-9]


实例

<?php

  $pattem = '/\D/';
    $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';
    $a = preg_match_all($pattem,$subject,$matches);
    var_dump($a);   // 输出匹配次数
    var_dump($matches); // 输出匹配结果

运行实例 »

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

运行效果图

除十进制以外的数.png

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

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

 

实例

<?php

  $pattem = '/\w/';
    $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';
    $a = preg_match_all($pattem,$subject,$matches);
    var_dump($a);   // 输出匹配次数
    var_dump($matches); // 输出匹配结果

运行实例 »

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

运行效果图

大小写字母及数字.png

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

 

实例

<?php

 $pattem = '/\W/';
    $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';
    $a = preg_match_all($pattem,$subject,$matches);
    var_dump($a);   // 输出匹配次数
    var_dump($matches); // 输出匹配结果

运行实例 »

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

运行效果图

除大小写字母及数字.png

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

 

实例

<?php

 $pattem = '/\s/';
    $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';
    $a = preg_match_all($pattem,$subject,$matches);
    var_dump($a);   // 输出匹配次数
    var_dump($matches); // 输出匹配结果

运行实例 »

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

运行效果图

匹配空白字符.png

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

实例

<?php

$pattem = '/\S/';
    $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';
    $a = preg_match_all($pattem,$subject,$matches);
    var_dump($a);   // 输出匹配次数
    var_dump($matches); // 输出匹配结果

运行实例 »

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

运行效果图

非空白以外的其它字符.png

\b 匹配单词边界

实例

<?php

 $pattem = '/ouyangke\b/';
    $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';
    $a = preg_match_all($pattem,$subject,$matches);
    var_dump($a);   // 输出匹配次数
    var_dump($matches); // 输出匹配结果

运行实例 »

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

运行效果图

匹配单词边界.png

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

实例

<?php

$pattem = '/yang\B/';
    $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';
    $a = preg_match_all($pattem,$subject,$matches);
    var_dump($a);   // 输出匹配次数
    var_dump($matches); // 输出匹配结果

运行实例 »

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

运行效果图

除单词边界以外的部分.png

五、特殊字符

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

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

实例

<?php

$pattem = '/ [\+\\\*\?\.\|\^\$\[\]\(\)]/';
    $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk * + ? . | ^ $ [ ] ( ) ouyangke ouyangke zhulaoshi zhulaoshi';
    $a = preg_match_all($pattem,$subject,$matches);
    var_dump($a);   // 输出匹配次数
    var_dump($matches); // 输出匹配结果

运行实例 »

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

运行效果图

特殊字符.png

六、分组符

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

 

实例

<?php

$pattem = '/(欧阳克|朱老师)|([0-9])/';
    $subject = '我是欧阳克 我是朱老师 asdfsdf212fdhdfgh54674fghjfghjk78907dfghdfghdfgh';
    $a = preg_match_all($pattem,$subject,$matches);
    var_dump($a);   // 输出匹配次数
    var_dump($matches); // 输出匹配结果

运行实例 »

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

运行效果图

分组符.png

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

 

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

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

代码示例1:贪婪模式

实例

<?php

 $pattem = '/ou.*/';
    $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';
    $a = preg_match_all($pattem,$subject,$matches);
    var_dump($a);   // 输出匹配次数
    var_dump($matches); // 输出匹配结果

运行实例 »

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

运行效果图

取消贪婪模式.png

 

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

    

实例

<?php

 $pattem = '/ou.*/U';
    $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi';
    $a = preg_match_all($pattem,$subject,$matches);
    var_dump($a);   // 输出匹配次数
    var_dump($matches); // 输出匹配结果

运行实例 »

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

运行效果图

贪婪.png

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

实例

<?php

 $pattem = '/ouyangke/i';
    $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk OUYANGKE OUYANGKE ZHULAOSHI ZHULAOSHI';
    $a = preg_match_all($pattem,$subject,$matches);
    var_dump($a);   // 输出匹配次数
    var_dump($matches); // 输出匹配结果

运行实例 »

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

运行效果图

i忽略大小写.png

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

实例

<?php

 $pattem = '/OUYANGKE./s';
    $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk\n OUYANGKE
OUYANGKE
ZHULAOSHI ZHULAOSHI';
    $a = preg_match_all($pattem,$subject,$matches);
    var_dump($a);   // 输出匹配次数
    var_dump($matches); // 输出匹配结果

运行实例 »

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

运行效果图

换行符看成普通字符.png



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

实例

<?php

  $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); // 输出匹配结果

运行实例 »

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

运行效果图

忽略模式空白.png

Correction status:qualified

Teacher's comments:preg_match_all($pattem,$subject,$matches);函数的每个参数,它的类型, 函数的返回值, 一定要记住
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!