9.2.2 正則表達(dá)式語(yǔ)法介紹2

9.2.2 正則表達(dá)式語(yǔ)法介紹2

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

Perl兼容正則表達(dá)式

正則表達(dá)式作為一個(gè)匹配的模版,是由原子(普通字符,例如字符a到z)、特殊字符(元字符,例如*、+和?等)、以及模式修正符三部分組成的文字模式。
一個(gè)最簡(jiǎn)單正則表達(dá)式至少包含一個(gè)原子。
將下面的正則表達(dá)式拆分如下:

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

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

正則表達(dá)式作為一個(gè)匹配的模版,是由原子(普通字符,例如字符a到z)、特殊字符(元字符,例如*、+和?等)、以及模式修正符三部分組成的文字模式。
一個(gè)最簡(jiǎn)單正則表達(dá)式至少包含一個(gè)原子。
將下面的正則表達(dá)式拆分如下:

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

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

1.php

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

    
    $reg = "/\d/";

    /* 定界符號(hào): 多種都可以, 常用為 // 
     * 
     * 原子 : 最少的一個(gè)匹配單位 (放在定界符中), 在一個(gè)正則表達(dá)式中, 至少要有一個(gè)原子
     * 元字符: 元字符不能單獨(dú)使用的,修飾原子,  是用來(lái)擴(kuò)展原子功能的和限定功能 (寫在定界符號(hào)中)
     * 
     * 模式修正符號(hào):  修正, 對(duì)模式(正則)修正, (寫在定界符號(hào)外面, 寫在右邊)
     *
     */

    echo $str."<br>";

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

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

    echo '<br>';


    if(preg_match($reg, $str, $arr) ) {
        echo "正則表達(dá)式 <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 "正則表達(dá)式 <b>{$reg}</b> 和字符串 <b>{$str}</b> 匹配成功!<br>";
        print_r($arr);
    
    } else {
        echo "沒有匹配上<br>";
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容