日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

详解 正则表达式

發(fā)布時間:2023/12/13 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 详解 正则表达式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

      • 一、概念
      • 二、作用
      • 三、語法規(guī)則
        • 3.1定義規(guī)則
        • 3.2符號簡介
        • 3.3preg_match用法詳解
        • 3.4詳解元字符
          • 3.4.1 \d和[0-9]
          • 3.4.2 \D和[^0-9]
          • 3.4.3^和$
          • 3.4.4*代表出現(xiàn)0次或者多次
          • 3.4.5+代表出現(xiàn)1次或者多次
          • 3.4.5?代表出現(xiàn)0次或者1次
          • 3.4.6{n}
          • 3.4.7{n,}
          • 3.4.8{n,m}
          • 3.4.9點號(.)
          • 3.5.0 x|y
          • 3.5.1 [xyz]
          • 3.5.2 [^xyz]
          • 3.5.3\b
          • 3.5.4\s
        • 3.5練習
          • 3.5.1手機號驗證案例
          • 3.5.2用戶名驗證案例
          • 3.5.3郵箱驗證
      • 四、高級運用
        • 4.1反向引用
        • 4.2貪婪模式
        • 4.3禁止貪婪模式
        • 4.4禁止貪婪模式案例

一、概念

正則表達式(regular expression)描述了一種字符串匹配的模式(pattern),可以用來檢查一個串是否含有某種子串、將匹配的子串替換或者從某個串中取出符合某個條件的子串等。

二、作用

實際當中主要用于下面幾個方面:
1、注冊頁面判斷用戶輸入的內容是否符合驗證規(guī)則
2、從整體字符串中看是否包含指定的字符串
3、找到符合規(guī)則的字符串進行替換

三、語法規(guī)則

3.1定義規(guī)則

3.2符號簡介

正則表達式可以有普通符號和元字符組成。

普通字符如下:
‘/a/’代表你就要匹配字符a
‘/a7/’代表你就要匹配字符a7

元字符:
是具有特殊意義的符號
‘/\d/’ 代表要找尋數(shù)字

匹配的方法:
preg_match(reg,reg,reg,str,[$arr]);
$reg就是自己定義的正則表達式
$str是自己要查詢的字符串
$arr是匹配到的結果

下面是各種符號的用法:
http://tool.oschina.net/uploads/apidocs/jquery/regexp.html

3.3preg_match用法詳解

preg_match()只要找到一次符合正則表達式的結果就終止了,不會再往下匹配

preg_match_all()是匹配一次成功以后不會終止,會一直匹配到完

\d和[0-9]是一個意思

3.4詳解元字符

3.4.1 \d和[0-9]

代表數(shù)字 參照上面

3.4.2 \D和[^0-9]

\D代表非數(shù)字和[^0-9]是一個意思

^在中括號中代表非

3.4.3^和$

^如果直接放在定界符前面代表以。。。開頭

$代表以。。。。結尾

3.4.4*代表出現(xiàn)0次或者多次

zo*能匹配“z”以及“zoo”。*等價于{0,}。

3.4.5+代表出現(xiàn)1次或者多次

zo+”能匹配“zo”以及“zoo”,但不能匹配“z”。+等價于{1,}。

3.4.5?代表出現(xiàn)0次或者1次

“do(es)?”可以匹配“does”或“does”中的“do”。?等價于{0,1}。

3.4.6{n}

{n}代表固定出現(xiàn)n次
“o{2}”不能匹配“Bob”中的“o”,但是能匹配“food”中的兩個o。

3.4.7{n,}

{n,}代表最少出現(xiàn)n次,多者不限

o{2,}”不能匹配“Bob”中的“o”,但能匹配“foooood”中的所有o。“o{1,}”等價于“o+”。“o{0,}”則等價于“o*”

3.4.8{n,m}

{n,m}代表最少出現(xiàn)n次,最多出現(xiàn)m次

“o{1,3}”將匹配“fooooood”中的前三個o。“o{0,1}”等價于“o?”。請注意在逗號和兩個數(shù)之間不能有空格

3.4.9點號(.)

表示匹配除了\n(換行符以外的任意單個字符)

如果要表示真正的點號必須用.

3.5.0 x|y

豎線代表是或者的意思

3.5.1 [xyz]

[xyz]點匹配xyz中的任意一個字符

3.5.2 [^xyz]

[^xyz]代表除了x y z以外的任意單個字符

3.5.3\b

\b代表匹配單詞的邊界

如果是如下什么也匹配不到

3.5.4\s

\s匹配任何空白字符,包括空格、制表符、換頁符等等。等價于[ \f\n\r\t\v]。

3.5練習

自己一個正則表達式,驗證手機號11位 都是數(shù)字

3.5.1手機號驗證案例

3.5.2用戶名驗證案例

用戶名可以是數(shù)字 字母 下劃線 中橫線 個數(shù)是3-8位

3.5.3郵箱驗證

四、高級運用

4.1反向引用

在正則表達式中出現(xiàn)小括號,是把小闊號中的內容當做子單元來使用

示例:
比如:你的字符串$str=‘a(chǎn)aaahttp://www.baidu.comdddd’;
然后你把里面的網(wǎng)址匹配出來替換成一個a標簽

preg_replace(正則表達式,替換成什么,源字符串)

4.2貪婪模式

正則表達式里會盡可能多的匹配的元素

4.3禁止貪婪模式

讓正則表達式盡可能少的匹配結果

4.4禁止貪婪模式案例

如果我們這樣寫會盡可能多的匹配

我們讓它盡可能少的匹配

總結

以上是生活随笔為你收集整理的详解 正则表达式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。