国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PHP正則表達式

isaced / 554人閱讀

摘要:正則表達式是什么是一種字符串處理的工具搜索匹配搜索替換搜索分割功能強大是一種規則正則表達式應用范圍數據驗證數據處理過濾數據查詢各語言都支持正則表達式相關函數正則表達式一個匹配返回匹配結果的次數執行一個全局正則表達式匹配返回匹配結果的次數

正則表達式是什么

是一種字符串處理的工具(搜索匹配、搜索替換、搜索分割)

功能強大,是一種規則

正則表達式應用范圍

數據驗證

數據處理/過濾

數據查詢

各語言(js/php/java/c#)都支持

正則表達式PHP相關函數

preg_filter ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )

preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] ) //正則表達式一個匹配,返回匹配結果的次數

preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]] ) //執行一個全局正則表達式匹配,返回匹配結果的次數

preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] ) //執行一個正則表達式的搜索和替換

preg_replace_callback ( mixed $pattern , callable $callback , mixed $subject [, int $limit = -1 [, int &$count ]] ) //執行一個正則表達式搜索并且使用一個回調進行替換

preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] ) //通過一個正則表達式分隔字符串

preg_quote ( string $str [, string $delimiter = NULL ] ) //轉義正則表達式字符

preg_grep ( string $pattern , array $input [, int $flags = 0 ] ) //返回給定數組input中與模式pattern匹配的元素組成的數組.

正則表達式組成

定界符

一般使用"/",但不限于此
除字母、數字、反斜杠""的其他字符都可以作為定界符

原子

.  匹配除換行符之外任意字符
d 匹配任意一個十進制數字
D 匹配任意一個非十進制數字
s 匹配一個不可見原子
S 匹配一個可見原子
w 匹配任意一個數字、字母或下劃線[a-zA-Z0-9_]
W 匹配任意非一個數字、字母或下劃線[^a-zA-Z0-9_]
[] 作為一個原子,匹配[]之間的一個原子
[^] 作為一個原子,不能匹配[]之間的一個原子

元字符

//量詞
{n} 匹配原子恰好出現n次
{n,} 匹配原子出現不少于n次
{n,m} 匹配原子出現至少n次,最多m次
* 相當于{0,}
+ 相當于{1,}
? 相當于{0,1}

//邊界限制
^ 指定匹配的字符串以什么原子開頭
$ 指定匹配的字符串以什么原子結尾

//模式選擇符
| 多選一

//模式單元
() 多原子作為一個大原子

模式修正符

i //不區分大小寫
s //正則表達式中.匹配所有字符,包括換行符
U //匹配模式變為懶惰模式(只有PHP有,其他語言不兼容,請使用.*?)
x //空白忽略
preg_filter與preg_replace區別

當匹配的目標數據是數組時,preg_filter只返回匹配的數組元素,preg_replace返回所有數組元素

正則表達式例子

非空判斷

$pattern = "/S+/";
$ret = preg_match($pattern," ");//false為空

去除空格

$str = "你是誰       2  年后";
$pattern = "/s+/";
$ret = preg_replace($pattern,"",$str);

手機號匹配

$pattern = "/^1(3[0-9]|4[57]|5[0-35-9]|7[0135678]|8[0-9])d{8}$/";
//匹配移動
$pattern = "^1(3[4-9]|4[7]|5[0-27-9]|7[08]|8[2-478])d{8}$";
//匹配聯通
$pattern = "^1(3[0-2]|4[5]|5[56]|7[0156]|8[56])d{8}$";
//匹配電信
$pattern = "^1(3[3]|4[9]|53|7[037]|8[019])d{8}$";

email匹配

$pattern = "/^(w)+(.w+)*@(w)+(.w+)+$/";

URL驗證(http/https)

$pattern = "/^https?:////(w+.)+[a-z]+$/";
正則表達式使用場景——模板引擎

實現原理

1、獲取模板源文件
2、編譯模板并輸出到文件(用正則替換,文件講保存編譯后的模板代碼html+php)
3、執行編譯后的模板文件(將得到html,如果要做靜態化就在此步)
4、輸出模板

簡單實現步驟

1、建立2個文件夾(一個存放模板源文件、一個存放模板編譯文件)
2、讀取模板源文件 $outputHtml = file_put_contents($filePath);
3、使用正則進行模式替換,然后用一個新文件存儲起來

正則進行模式替換

$str = "測試:{{$test}}";
$pattern = "/{{ *$(w+) *}}/";
$arr = preg_replace($pattern,"",$str);

//最后$arr="測試:"
//除可以使用1,也可以使用$1
//得到字符串需要動態執行,可以使用eval(),否則不執行,但eval()不能有php開始/關閉標簽

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/22601.html

相關文章

  • PHP 正則達式入門 Getting Started with PHP Regular Expre

    摘要:兼容的正則表達式已經實現了很多使用不同解析引擎的正則函數。中主要有兩個正則解析器一個稱為,另一個稱為兼容正則表達式。在中,每個正則表達式模式都是使用符合格式的字符串。 原文鏈接: Getting Started with PHP Regular Expressions Last-Modified: 2019年5月10日16:23:19譯者注: 本文是面向0正則基礎的phper, 很多...

    zhangke3016 評論0 收藏0
  • PHP 正則達式

    摘要:規范為的縮寫,中文即兼容正則表達式,由開發的庫,為很多現代工具所使用,大多數編程語言的正則表達式也都是集成該規范。接下來本文會對規范的正則表達式作出詳細介紹。正則語法分隔符當使用函數的時候,模式需要由分隔符閉合包裹。 概述 正則表達式(Regular Expression)是一種字符匹配工具,通過構建具有特定規則的模式,和輸入字符串數據進行比較,然后進行匹配、分割、替換等等的相關操作。...

    rozbo 評論0 收藏0
  • PHP/JS 常用的正則達式

    摘要:正則表達式的都是匹配和替換搜索正則表達式要匹配的字符串匹配到的字符串匹配到的個數,沒有匹配到返回下面是例子執行一個正則表達式匹配,非貪婪執行一個全局正則表達式匹配,貪婪執行結果匹配所有僅由有一個單詞組成的科目名輸出結果替換正則表達式要匹 正則表達式的都是匹配和替換 PHP 搜索 preg_match* /** * int preg_match* ( string $pattern ,...

    mikyou 評論0 收藏0
  • PHP/JS 常用的正則達式

    摘要:正則表達式的都是匹配和替換搜索正則表達式要匹配的字符串匹配到的字符串匹配到的個數,沒有匹配到返回下面是例子執行一個正則表達式匹配,非貪婪執行一個全局正則表達式匹配,貪婪執行結果匹配所有僅由有一個單詞組成的科目名輸出結果替換正則表達式要匹 正則表達式的都是匹配和替換 PHP 搜索 preg_match* /** * int preg_match* ( string $pattern ,...

    Simon 評論0 收藏0
  • php實戰正則達式(二):提取html元素

    摘要:在閱讀這篇文章前最好把同系列文章實戰正則表達式一驗證手機號先仔細閱讀一遍。但實際上這樣一個表達式是無法從上面的中提取第一個元素的這里主要的問題是在默認情況下點號字符無法匹配換行符。但是很遺憾,正則表達式中沒有排除型子表達式或者說排除型分組。 這篇文章通過提取html元素介紹了正則表達式中模式修飾符、貪婪匹配與非貪婪匹配、Unicode模式、環視等知識點。在閱讀這篇文章前最好把同系列文章...

    ityouknow 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<