正規表示式時工作中非常常用且作用非常強大的一種技術,但是學起來略顯枯燥。今天,為大家講一下,在php中正規表示式該如何寫?
分隔符號
當使用 PCRE 函數的時候,模式需要由分隔符號閉合包裹。分隔符號可以使任意非字母數字、非反斜線、非空白字元。
常用的分隔符號是正斜線(/)、hash符號(#) 、取反符號(~)。下面的例子都是使用合法分隔符號的模式。
/foo bar/<br>#^[^0-9]$<br># php <br>%[a-zA-Z0-9_-]%
#如果分隔符需要在模式內進行匹配,它必須使用反斜線進行轉義。如果分隔符號經常在 模式內出現, 一個更好的選擇就是用其他分隔符號來提高可讀性。
/http:\/\//<br>#http://#
#需要將字串放入模式中使用時,可以用 preg_quote () 函數對其進行轉義,它的第二個參數(可選)可以用來指定需要被轉義的分隔符號。
除了上述的分隔符,也可以使用括號樣式的分隔符,左括號和右括號分別作為開始和結束 分隔符。
{this is a pattern}
可以在結束分隔符號後面增加模式修飾符。下面的範例是一個大小寫不敏感的匹配:
#[a-z]#i
<span style="font-size: 20px;">轉義序列</span>
反斜線有多種用法。首先,如果緊接著是一個非字母數字字符,表示取消 該字符所代表的特殊涵義。這種將反斜線作為轉義字元的用法在字元類別 內部和外部都可用。
例如,如果你希望匹配一個 "*" 字符,就需要在模式中寫為 "\*"。這適用於一個字元在不進行轉義會有特殊意義的情況下。但是, 對於非數字字母的字符,總是在需要其進行原文匹配的時候在它前面增加一個反斜線, 來聲明它代表自己,這是安全的。如果要符合一個反斜線,那麼在模式中使用 ”\\”。
例如,我要寫小數點"." ,但是點是 元字元 (有特殊涵義的編碼字元),如果要表示小數點,不讓它代表特殊意義,就需要轉義: "\. " 或[\.]
$lng = 125.97097735211630;<br>
##$pattern = "#^(0|[1-9][ 0-9]*)[\.][0-9]{14}$#";
#表達式中的反斜線
轉義字元
#轉義字元主要是將一些特殊字元轉換為普通字元。而這些常用特殊字元有”.”,”?”、”\”等。
指定預先定義的字元集
顯示不可列印的字元
以上是php正規表示式怎麼寫的詳細內容。更多資訊請關注PHP中文網其他相關文章!