本文目錄一覽:
- 1、哪位高手能告訴我,php 正則表達式可以用一種什麼樣比喻來解釋其作用呢?
- 2、什麼是PHP的正則表達式
- 3、詳解PHP正則表達式:什麼是正則表達式
- 4、php正則式求解解釋!
- 5、php 16.什麼是正則表達式,並舉一個例子。
哪位高手能告訴我,php 正則表達式可以用一種什麼樣比喻來解釋其作用呢?
首先,正則是獨立於各門語言之外的一種用於分析處理文本技術。由於很有用,各大流行語言都有支持正則表達式的函數或者庫,php也支持,而且個人感覺php對正則的支持做得很好。關於正則,可以看看
這個比較全面的解釋。
如果用口水話解釋,php中的正則就是一種用於查找匹配(衍生出替換)文本的工具,可以幫助你方便地找到一類帶某特性的文本並進行處理。就是根據你所寫的正則,去得到符合某種特性的文本。
假設你要在一篇文章中找“xyz的作用:mmmm”,xyz是一串英文字符串,可能是java,可能是php等,而mmmm是內容,完全未知是什麼。這時你用正則“[a-zA-Z]+的作用:(\S+)”就能找出這一類“(英文字符串) 後面接 (的作用:) 後面接 (一段描述)”的文本,得到這種你所需要的對某語言作用的(一段描述)文字。
什麼是PHP的正則表達式
也就是所謂的補集——在左邊的括號和第一個字符之間使用^字符,例如正則表達式[^269A-Z] 將匹配除了2、6、9和所有大寫字母之外的任何字符。
你的也就是匹配除了之外的任何字符。
詳解PHP正則表達式:什麼是正則表達式
正則表達式,又稱規則表達式,英文名為Regular Expression,在代碼中常簡寫為regex、regexp或RE,是計算機科學的一個概念。正則表通常被用來檢索、替換那些符合某個模式(規則)的文本。
正則表達式是對字符串(包括普通字符(例如,a 到 z 之間的字母)和特殊字符(稱為“元字符”))操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規則字符串”,這個“規則字符串”用來表達對字符串的一種過濾邏輯。正則表達式是一種文本模式,模式描述在搜索文本時要匹配的一個或多個字符串。
php正則式求解解釋!
我們來一條條的分析,正則這樣分析最容易了:
先來看前面的無名表達式中間的 [\d]+ 相信這個有點正則經驗的都知道,它是表示連續至少一個數字的字符串;
再看它外面一圈: \(([\d]+)\) 這個是表示帶了括號的至少一個數字的字符串,比如:”(554)”就符合它的要求;
再來看它再外面的一圈 (?:表達式) 這樣的語法,這個我們稱之為無名表達式,它可以佔一個括號,卻不會被子匹配所捕獲;也就是說,它裡面的值在 \1\2或者是$1$2中不會因為用了括號而出現,但它裡面的括號還是會被子匹配的。但要注意的是,冒號的前面有一個空格,這個空格也是要求被匹配的,也就是說,在包含了數字的括號前面,要有一個空格,這個數字和括號才會被匹配;
再外面的,又出現了一個無名表達式,這個浪費了,沒用。
(?:(?: \(([\d]+)\))? 最後面的 ? ,這個表示這個無名表達式中的內容可有可無,有的話只限一次,要麼就沒有。
再看後面 [^.]+ 這個表達式,它的寫法很有意思,我們都知道在正則中 . 這個符號是不匹配換行的,其它的統統拿下,所以,這麼用就表達匹配換行符,後面的 + 表示至少一個,上不封頂。那麼,它表示匹配出現一次或者多次的換行,這個還可以用 [\r\n]+ 來代替;
再看它外圍,(\.[^.]+)? 這個表達式表示,以換行結尾,換行前面有一個點,“.”的前面加上“\”表示這個符號本身,也就是點了,至於後邊的問號,與第5條後面的問號意思一樣;
最後的$表示是被匹配字符串的末尾,也就代表着,這個正則表達式只匹配出現在整個字符串最末尾的部分,如果出現在字符串中間,則不會被匹配;
最後,我舉出幾個典型的能夠被這條表達式匹配出來的字符串形式:
空字符串
任何字符串最後的空串
任何字符串最後的點加上換行
空格+括號包含一個以上數字,再加上後面緊跟一個點,點後面還必須有換行的字符串;
下面是代碼實例:(這裡的代碼中有多行的會被自動過濾,所以有些不準確)
$a = array(
‘ (01111).
‘, //全部匹配
‘(0222).
‘, //只匹配點加上換行(因為沒有空格不會匹配(0222))
‘ (0333333).
‘, //匹配 空格加上(0333333)加上點加上若干個換行
‘ (044)’, //匹配空字符串,因為空格加上(044)是相當於預判的無名表達式,所以後面如果沒有跟隨有意義的匹配,那麼不對無名表達式進行匹配;
”, //匹配空字符串
‘fdsa432’, //匹配空字符串
‘魂f.
‘, //匹配點加上換行
‘ac (55)a’ //匹配空字符串
);
foreach($a as $k=$v){
if(preg_match(“/(?:(?: \(([\d]+)\))?(\.[^.]+))?$/”, $v, $re)){
var_dump($re);
}
}
輸出:
php 16.什麼是正則表達式,並舉一個例子。
一、什麼是正則表達式
正則表達式(regular expression)描述了一種字符串匹配的模式,可以用來檢查一個串是否含有某種子串、將匹配的子串做替換或者從某個串中取出符合某個條件的子串等。
二、例子:
?php
$str = ‘我的電話號碼是:12345678’;
$pt = ‘/\d+/’;
preg_match_all($pt, $str, $arr);
echo ‘電話號碼:’ . $arr[0][0];
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/194299.html