程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> php正則表達式簡介

php正則表達式簡介

編輯:PHP綜合

正則表達式簡介

正則表達式Regular Expression,使用單個字符串來描述、匹配一系列符合某個句法規則的字符串。代表性書籍《正則表達式之道》裡面有詳細論述,本書籍為個人查閱之用力求精簡、明確、方便使用,只對必要概念做補充性說明。

界定符

正則表達式本身即是一個字符串,需要一組界定符區分出哪裡是正則表達式的內容。//和##和{},都是界定符,在PHP語言中用//作為正則表達式的界定符。一般不建議用{}做界定符,因為{}本身也可以是正則表達式的元字符,容易混淆。

元字符

| 匹配兩個或者多個分支選擇
[] 匹配方括號中任意的原子
[^] 匹配方括號中原子之外的任意字符,相當於[]的非
. 匹配除換行符之外的任意一個字符
\d 匹配任意一個十進制的數字,即[0-9]
\D 匹配任意一個非十進制的數字,即[^0-9]
\s 匹配任意一個不可見原子(空白符),即[\f\n\r\t\v]
\S 匹配任意一個非不可見原子(空白符),即[^\f\n\t\v]
\w 匹配任意一個數字、字母或者下劃線,即[0-9a-zA-Z_]
\W 匹配任意一個非數字、字母、或者下劃線,即[^0-9a-zA-Z_]

量詞(匹配次數)

{n} 前面原子恰好重復n次
{n,} 前面原子重復>=n次
{n,m} 前面原子重復大於等於n次,小於等於m次
*重復0次或者更多次
+重復1次或者更多次
?重復0次或者1次

邊界控制(匹配位置)

() 匹配括號內的原子集合作為一個原子看待
\b 匹配單詞的開始或者結束位置
^ 匹配字符串的開始位置
$ 匹配字符串的結束位置
\G 匹配上一個匹配的結尾(本次匹配的開始)
\A 匹配字符串開頭(類似^,但是不受處理多行選項的影響)
\Z 匹配字符串的結尾或者行尾(不受處理多行選項的影響)
\z 匹配字符串的結尾(類似$,但是不受處理多行選項的影響)

修正模式

貪婪匹配,匹配結果存在歧義時取其長(PHP中為默認模式)
懶惰匹配,匹配結果存在歧義時取其短
U 修正為懶惰模式
i 忽略英文字母大小寫
x 忽略空白符
s 讓元字符 . 匹配任意字符包括換行符
e 如果設定了此修正符,preg_replace() 在替換字符串中對逆向引用作正常的替換,將其作為 PHP 代碼求值,並用其結果來替換所搜索的字符串

轉義

正則中的元字符都要加\進行轉義:
$ ( ) * + . [ ] ? \ ^ { } |

 

非空

.+

大陸手機號

1[34578]\d{9}

email

^\w+(.w+)*@\w+(.w+)+$

URL

^(https?://)?(\w+.)+[a-zA-Z]+$

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved