欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-11 14:20:49
...

一、原子

1.普通字符

实例

<?php

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

运行实例 »

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

运行效果图

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

2.非打印字符

实例

<?php

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

运行实例 »

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

运行效果图

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

3.自定义字符

实例

<?php

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

运行实例 »

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

运行效果图

 

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

二、元字符

实例

<?php

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

运行实例 »

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

运行效果图

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

 

( | ) 括号里的匹配符,匹配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); // 输出匹配结果

运行实例 »

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

运行效果图

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

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

实例

<?php

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

运行实例 »

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

运行效果图

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

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


实例

<?php

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

运行实例 »

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

运行效果图

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

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


实例

<?php

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

运行实例 »

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

运行效果图

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

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


实例

<?php

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

运行实例 »

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

运行效果图

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


三、量词(限定符)

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

运行实例 »

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

运行效果图

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

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

运行实例 »

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

运行效果图

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

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

运行实例 »

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

运行效果图

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

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

运行实例 »

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

运行效果图

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

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

运行实例 »

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

运行效果图

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

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

运行实例 »

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

运行效果图

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

四、预定义字符

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

运行实例 »

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

运行效果图

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

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

运行实例 »

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

运行效果图

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

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

运行实例 »

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

运行效果图

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

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

 

实例

<?php

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

运行实例 »

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

运行效果图

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

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

 

实例

<?php

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

运行实例 »

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

运行效果图

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

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

实例

<?php

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

运行实例 »

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

运行效果图

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

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

运行实例 »

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

运行效果图

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

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

运行实例 »

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

运行效果图

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

五、特殊字符

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

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

实例

<?php

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

运行实例 »

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

运行效果图

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

六、分组符

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

 

实例

<?php

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

运行实例 »

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

运行效果图

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

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

 

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

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

代码示例1:贪婪模式

实例

<?php

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

运行实例 »

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

运行效果图

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

 

代码示例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); // 输出匹配结果

运行实例 »

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

运行效果图

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

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

运行实例 »

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

运行效果图

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

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

运行实例 »

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

运行效果图

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



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

运行实例 »

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

运行效果图

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