<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] 正則表達式(Regular Expression,在代碼中常簡寫為regex、regexp或RE)是計算機科學的一個概念。正則表達式使用單個字符串來描述、匹配一系列符合某個句法規則的字符串。在很多文本編輯器里,正則表達式通常被用來檢索、替換那些符合某個模式的文本。許多程序設計語言都支持利用正則表達式進行字符串操作。 在很多文本編輯器里,正則表達式通常被用來檢索、替換那些符合某個模式的文本。 簡單來說正則表達式就是完成字符串的增、刪、改、查 ## 應用場合 數據驗證、文本替換、內容檢索、過濾內容 可以理解為:執行字符串函數無法完成的特殊的匹配、拆分、 替換功能 ## 定界符 正則表達式語句需要由分隔符(定界符)閉合包裹,分隔符可以使任意非 字母數字, 非反斜線, 非空白字符 經常使用的分隔符是正斜線(/), hash符號(#) 以及取反符號(~)。 建議使用//做為定界符,因為和js一致 實例 ~~~ <?php $preg= "/xuebingsi/"; $c = preg_match($preg,"學并思網址xuebingsi.com"); echo $c; ?> ~~~ ## 原子(元字符) 原子是正則表達式中的最小的元素,包括英文、標點符號等 ### 原子構成方式 普通字符是編寫正則表達式時最常見的原子了,包括所有的大寫和小寫字母字符、所有數字等 一些特殊字符和元字符作為原子,統統使用`"\"`轉義字符進行轉義即可。 在正則表達式中可以直接使用一些系統提供的代表范圍的原子,如下面的表格所示: <table class="jbborder"> <tbody> <tr> <td> 代表范圍的原子 </td> <td> &nbsp;說明 </td> <td> &nbsp;自定義原子表示法 </td> </tr> <tr> <td> &nbsp;\d </td> <td> &nbsp;表示任意一個十進制的數字 </td> <td> &nbsp;[0-9] </td> </tr> <tr> <td> &nbsp;\D </td> <td> &nbsp;表示任意一個除數字這外的字符 </td> <td> &nbsp;[^0-9] </td> </tr> <tr> <td> &nbsp;\s </td> <td> &nbsp;表示任意一個空白字符,空格、\n\r\t\f </td> <td> &nbsp;[\n\r\t\f ] </td> </tr> <tr> <td> &nbsp;\S </td> <td> &nbsp;表示任意一個非空白 </td> <td> &nbsp;[^\n\r\t\f ] </td> </tr> <tr> <td> &nbsp;\w </td> <td> &nbsp;表示任意一個字 a-zA-Z0-9_ </td> <td> &nbsp;[a-zA-Z0-9_] </td> </tr> <tr> <td> &nbsp;\W </td> <td> &nbsp;表示任意一個非字,除了a-zA-Z0-9_以外的任意一個字符 </td> <td> &nbsp;[^a-zA-Z0-9_] </td> </tr> </tbody> </table> ### 自定義原子表([])作為原子 在一組字符中匹配某個元字符,在正則表達式中通過元字符表來完成,就 是放到[..](方括號)中 <table class="dataintable"> <tbody><tr> <th style="width:20%">表達式</th> <th>描述</th> </tr> <tr> <td><a>[abc]</a></td> <td>查找方括號之間的任何字符。</td> </tr> <tr> <td><a>[^abc]</a></td> <td>查找任何不在方括號之間的字符。</td> </tr> <tr> <td>[0-9]</td> <td>查找任何從 0 至 9 的數字。</td> </tr> <tr> <td>[a-z]</td> <td>查找任何從小寫 a 到小寫 z 的字符。</td> </tr> <tr> <td>[A-Z]</td> <td>查找任何從大寫 A 到大寫 Z 的字符。</td> </tr> <tr> <td>[A-z]</td> <td>查找任何從大寫 A 到小寫 z 的字符。</td> </tr> <tr> <td>[adgk]</td> <td>查找給定集合內的任何字符。</td> </tr> <tr> <td>[^adgk]</td> <td>查找給定集合外的任何字符。</td> </tr> <tr> <td>(red|blue|green)</td> <td>查找任何指定的選項。</td> </tr> <tr> <td>.</td> <td>點在正則中表示除換行符外的任意字符</td> </tr> </tbody></table> **實例** ~~~ <?php $str ="1.jpg@2.jpg@3.jpg#4.jpg"; $preg="/[@#]/"; $c = preg_match($preg,$str); var_dump($c); ?> ~~~ ## 原子組(元字符組) >[success]如果一次要匹配多個元子,可以通過元子組完成 原子組不原子表的差別在于原子組一次匹配多個元子,而原子表則 是匹配成功表中的一個元字符就可以 元字符組用()表示 組號是從 左到右計數的調用時: 這種方式我們叫做反向引用 **實例** ~~~ <?php $str = "學并思官網www.xuebingsiwang.com學并思論壇 http://bbs.xuebingsiwang.com我在學并思的網名叫xuebingsi"; $preg = "/(xuebingsi)wang/is"; $newStr= preg_replace($preg,"<span style='color:#f00'>$1</span>wang",$str); echo $newStr; ?> ~~~ ## 選擇修釋符 >[success]| 這個符號帶表選擇修釋符,也就是 | 左右兩側有一個匹配到就可以 實例 ~~~ <?php $str = "http://www.baidu.com不新浪網http://www.sina.com"; $preg = "/\.(baidu|sina)\./"; $new_str = preg_replace($preg,'.xuebingsiwang.',$str); ?> ~~~ ## 重復匹配(量詞) >[success]如果要重復匹配一些內容時我們要使用重復匹配修飾符,包括以下幾種 <table class="dataintable"> <tbody> <tr> <th style="width:20%"> 量詞 </th> <th> 描述 </th> </tr> <tr> <td> <a> * </a> </td> <td> 重復零次或更多次 </td> </tr> <tr> <td> <a> + </a> </td> <td> 重復一次或更多次 </td> </tr> <tr> <td> <a> ? </a> </td> <td> 重復零次或一次 </td> </tr> <tr> <td> <a> {n} </a> </td> <td> 重復n次 </td> </tr> <tr> <td> <a> {n,} </a> </td> <td> 重復n次或更多次 </td> </tr> <tr> <td> <a> {n,m} </a> </td> <td> 重復n到m次 </td> </tr> </tbody> </table> 因為正則最小單位是元字符,而我們很少只匹配一個元字符如a、b所以基 本上重復匹配在每條正則語句中都是必用到的內容 ## 禁止重復匹配 >[success]正則表達式在進行重復匹配時,默認是貪婪匹配模式,也就是說會盡量匹配更多內容,但是有的時候我們并不希望他匹配更多內容,這時可以通過? 進行修飾來禁止重復匹配 <table class="dataintable"> <tbody> <tr> <th style="width:20%"> 量詞 </th> <th> 描述 </th> </tr> <tr> <td> <a> *? </a> </td> <td> 重復零次或更多次,但盡可能少重復 </td> </tr> <tr> <td> <a> +? </a> </td> <td> 重復一次或更多次,但盡可能少重復 </td> </tr> <tr> <td> <a> ?? </a> </td> <td> 重復零次或一次,但盡可能少重復 </td> </tr> <tr> <td> <a> {n}? </a> </td> <td> 重復n次,但盡可能少重復 </td> </tr> <tr> <td> <a> {n,}? </a> </td> <td> 重復n次或更多次,但盡可能少重復 </td> </tr> <tr> <td> <a> {n,m}? </a> </td> <td> 重復n到m次,但盡可能少重復 </td> </tr> </tbody> </table> ## 匹配字符邊界 >[success]如果想匹配字符的邊界,邊界包括空格、標點符號、換行等,可以使用正則表達式的匹配字符邊界修飾符如下 1. ^匹配字符串的開始 2. $匹配字符串的結束,忽略換行符\n ## 模式修正符 >[success]正則表達式在執行時會按他們的默認執行方式進行,但有時候默認的處理方式總不能滿足我們的需求,所以可以使用模式修正符更改默認方式。 1. i不區分大小寫字母的匹配 2. s將字符串視為單行,換行符做普通字符看待,使“.” 匹配任何字符 3. 常用正則操作函數 ## preg_match()方法 >[success]執行一個正則表達式匹配 **語法:** `int preg_match ($pattern , $subject) ` ## preg_match_all()方法 >[success]執行一個全局正則表達式匹配 **語法:** `int preg_match_all ($pattern ,$subject [, array &$matches])` matches多維數組,作為輸出參數輸出所有匹配結果, 數組排序通過flags指定。 ## preg_split()方法 >[success]通過一個正則表達式分隔字符串 **語法:** `array preg_split ( string $pattern , string $subject)` ## preg_replace()方法 >[success]執行一個正則表達式的搜索和替換 **語法:** `mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject)` >[danger] 練習:搞懂郵箱,手機,身份證,網址等等正則,采集拉勾網招聘職位數據
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看