PHP正則表達(dá)式

1、正則表達(dá)式的作用

匹配,分割,查找,替換字符串

2、正則表達(dá)式分隔符:

正斜線(/),hash符號(hào)(#),取反符號(hào)(~ )

3、通用原子:

\d(十進(jìn)制0-9)
\D(\d的取反)
\w(數(shù)字,字母,下劃線)
\W(\w取反)
\s(空白符)
\S(\s取反)

4、元字符

. (除了換行符以外的任意字符)

* (匹配前面的內(nèi)容和,出現(xiàn)0次1次或者多次)
? (出現(xiàn)0次或者1次)
^(以它開頭)
$(以它結(jié)尾)
+(出現(xiàn)一次或者多次)
{n}恰巧出現(xiàn)n次
{n,}出現(xiàn)大于等于n次
{n,m} n<=次數(shù)<=m
[](一個(gè)集合如[abc]就是匹配a或b或c)
()(互相引用,或者代表一個(gè)整體)
[^](取反如[^abc]除了a,b,c)
|(或者)
[-](范圍[0-9]代表匹配0-9)

5、修正模式

i 不區(qū)分大小寫
m 將字符串的每一行分別進(jìn)行匹配
e 對(duì)匹配的結(jié)果做PHP語(yǔ)法處理
s 將字符串視為單行,換行符作為普通字符.
U 取消貪婪模式
x 將模式中的空白忽略.
A 強(qiáng)制僅從目標(biāo)字符串的開頭開始匹配.
D 模式中的美元元字符僅匹配目標(biāo)字符串的結(jié)尾.
u utf-8中文匹配

6、后向引用

示例:匹配<b></b>中的內(nèi)容


屏幕快照 2017-10-24 下午9.49.04.png

7、貪婪模式

示例:使用.*?取消貪婪模式

屏幕快照 2017-10-24 下午9.53.24.png

8、正則表達(dá)式常用函數(shù)

屏幕快照 2017-10-24 下午9.54.06.png

示例1:匹配以139開頭的11位手機(jī)號(hào)

<?php
//匹配139開頭的11位手機(jī)號(hào)碼
$str = '13988888888';
$pattern = '/^139\d{8}$/';
preg_match($pattern,$str,$match);
var_dump($match);

運(yùn)行結(jié)果:

chenzhitaodeMacBook-Pro:php chenzhitao$ php demo5.php
array(1) {
  [0]=>
  string(11) "13988888888"
}

示例2:匹配img標(biāo)簽中的所有src屬性

<?php
//匹配所有img標(biāo)簽中的src屬性
$str = '<img alt = "撒旦阿薩德" id = "11" class = "image" src= "my.jpg" />';
$pattern = '/<img.*?src\s*=\s*"(.*?)".*?\/?/i';
preg_match($pattern,$str,$match);
var_dump($match);

運(yùn)行結(jié)果:

chenzhitaodeMacBook-Pro:php chenzhitao$ php  demo6.php
array(2) {
  [0]=>
  string(68) "<img alt = "撒旦阿薩德" id = "11" class = "image" src= "my.jpg""
  [1]=>
  string(6) "my.jpg"
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 正則表達(dá)式介紹 正則表達(dá)式簡(jiǎn)介 正則表達(dá)式是用于描述字符排列和匹配模式的一種語(yǔ)法規(guī)則。它主要用于字符串的模式分割、...
    dptms閱讀 11,054評(píng)論 1 9
  • 因?yàn)楸容^重要,所以還是單獨(dú)拿出來(lái)作一篇文章,好好學(xué)習(xí)一下。 正則表達(dá)式:Regular expression 定義...
    齊舞647閱讀 1,456評(píng)論 3 7
  • 什么叫正則表達(dá)式 正則表達(dá)式是對(duì)字符串進(jìn)行操作的一種邏輯公式,就是用一些特定的字符組合成一個(gè)規(guī)則字符串,稱之為正則...
    縱我不往矣閱讀 25,060評(píng)論 1 7
  • 初衷:看了很多視頻、文章,最后卻通通忘記了,別人的知識(shí)依舊是別人的,自己卻什么都沒(méi)獲得。此系列文章旨在加深自己的印...
    DCbryant閱讀 4,257評(píng)論 0 20
  • 溫馨提示:文章很長(zhǎng)很長(zhǎng),保持耐心,必要時(shí)可以跳著看,當(dāng)然用來(lái)查也是不錯(cuò)的。 正則啊,就像一座燈塔,當(dāng)你在字符串的海...
    Stinson閱讀 4,516評(píng)論 2 82

友情鏈接更多精彩內(nèi)容