9.2.2 正则表达式语法介绍2

9.2.2 正则表达式语法介绍2

定界符
原子
元字符
模式修正符

Perl兼容正则表达式

正则表达式作为一个匹配的模版,是由原子(普通字符,例如字符a到z)、特殊字符(元字符,例如*、+和?等)、以及模式修正符三部分组成的文字模式。
一个最简单正则表达式至少包含一个原子。
将下面的正则表达式拆分如下:

   '/<a.*?(?:|\\t|\\r|\\n)?href=[\"]?(.+?)[\"]?(?:(?:|\\t|\\r|\\n)+.*?)?>(.+?)<\/a.*?>/sim'

定界符:两个斜线”/”。
原子用到了< a href = ‘ “ / >等普通字符和\t \r \n等转义字符
元字符使用了 [] () | . ? * + 等具有特殊含义的字符
用到了模式修正符是在定界符最后一个斜线之后的三个字符: s i m

正则表达式作为一个匹配的模版,是由原子(普通字符,例如字符a到z)、特殊字符(元字符,例如*、+和?等)、以及模式修正符三部分组成的文字模式。
一个最简单正则表达式至少包含一个原子。
将下面的正则表达式拆分如下:

   '/<a.*?(?:|\\t|\\r|\\n)?href=[\"]?(.+?)[\"]?(?:(?:|\\t|\\r|\\n)+.*?)?>(.+?)<\/a.*?>/sim'

定界符:两个斜线”/”。
原子用到了< a href = ‘ “ / >等普通字符和\t \r \n等转义字符
元字符使用了 [] () | . ? * + 等具有特殊含义的字符
用到了模式修正符是在定界符最后一个斜线之后的三个字符: s i m

1.php

<?php
    $str = "aa1aaaaa3aaaa5aaaa77777aaaa2aaaa9aaaaa0aaaaaaa<br>";

    
    $reg = "/\d/";

    /* 定界符号: 多种都可以, 常用为 // 
     * 
     * 原子 : 最少的一个匹配单位 (放在定界符中), 在一个正则表达式中, 至少要有一个原子
     * 元字符: 元字符不能单独使用的,修饰原子,  是用来扩展原子功能的和限定功能 (写在定界符号中)
     * 
     * 模式修正符号:  修正, 对模式(正则)修正, (写在定界符号外面, 写在右边)
     *
     */

    echo $str."<br>";

    echo preg_replace($reg, "#", $str)."<br>";

    print_r(preg_split($reg, $str));

    echo '<br>';


    if(preg_match($reg, $str, $arr) ) {
        echo "正则表达式 <b>{$reg}</b> 和字符串 <b>{$str}</b> 匹配成功!<br>";
        print_r($arr);
    
    } else {
        echo "没有匹配上<br>";
    }

test.php

<?php
    $str = "aa1aaaaa3aaaa5aaaa77777aaaa2aaaa9aaaaa0aaaaaaa<br>";

    
    $reg = "/\d/";


    if(preg_match($reg, $str, $arr) ) {
        echo "正则表达式 <b>{$reg}</b> 和字符串 <b>{$str}</b> 匹配成功!<br>";
        print_r($arr);
    
    } else {
        echo "没有匹配上<br>";
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容