PHP中正規表示式

2021-06-10 09:57:58 字數 2551 閱讀 4194

正規表示式一般表示式的形式如下:

/love/

其中位於「/」定界符之間的部分就是將要在目標物件中進行匹配的模式。為了能夠使使用者更加靈活的的定製模式內容,正規表示式提供了專門的"元字元"。所謂元字元就是指那些表示式中具有特殊意義的字元,可以用來規定其前導字元(即在元字元前面的字元)在目標物件中的出現模式。

較為常用的元字元包括:「+」,"*",以及"?"。其中,"+"字元規定其前導字元必須在目標物件中連續出現一次或多次,"*"元字元規定其前導字元必須在目標物件中連續出現零次或多次。而"?"元字元規定其前導物件必須在目標物件中連續出現零次或一次。

比如/fo+/可匹配"fol"、"football"等

/eg*/可匹配"easy"、"egg"等

/wil?/可匹配"win"、「wilson」。

除了元字元之外,使用者還可以精確指定模式在匹配物件中出現的頻率。例如:

/jim/

上述正規表示式規定字元m可以在匹配物件中連續出現2-6次。因此,上述正規表示式可以同jimmy和jimmmmmmy匹配。

我們來看一下其他幾個重要的元字元的使用。

\s:用於匹配單個空格符,包括tab鍵和換行符;

\s:用於匹配除單個空格符之外的所有字元;

\d:用於匹配從0到9的數字;

\w:用於匹配字母,數字或下劃線字元;

\w:用於匹配所有與\w不匹配的字元

. :用於匹配除換行符之外的所有字元。

發現沒有。\大寫字母 匹配的範圍是\小寫字母匹配範圍的補集

例項:/\s+/匹配零個或多個字元

/\d000/能輕而易舉的找到0-9000之間的數

除了上述元字元以外,正規表示式還有另外一種較為獨特的專用字元,即定位符。定位符用於規定匹配模式在目標物件中出現的位置。

較為常用的定位符包括: 「^」, 「$」, 「\b」 以及 「\b」。

其中,,「^」定位符規定匹配模式必須出現在目標字串的開頭,$」定位符規定匹配模式必須出現在目標物件的結尾,\b定位符規定匹配模式必須出現在目標字串的開頭或結尾的兩個邊界之一。而「\b」定位符則規定匹配物件必須位於目標字串的開頭和結尾兩個邊界之內,即匹配物件既不能作為目標字串的開頭,也不能作為目標字串的結尾。

例項:/^hell/

因為上述正規表示式中包含「^」定位符,所以可以與目標物件中以 「hell」, 「hello」或 「hellhound」開頭的字串相匹配

/ar$/

因為上述正規表示式中包含「$」定位符,所以可以與目標物件中以 「car」, 「bar」或 「ar」 結尾的字串相匹配。

/\bbom/

因為上述正規表示式模式以「\b」定位符開頭,所以可以與目標物件中以 「bomb」, 或其他以 「bom」開頭的字串相匹配。

/man\b/

因為上述正規表示式模式以「\b」定位符結尾,所以可以與目標物件中以 「human」, 「woman」或其他以 「man」結尾的字串相匹配

為了能夠方便使用者更加靈活的設定匹配模式,正規表示式允許使用者在匹配模式中指定某乙個範圍而不侷限於具體的字元。例如:

/[a-z]/

上述正規表示式將會與從a到z範圍內任何乙個大寫字母相匹配。

/[a-z]/

上述正規表示式將會與從a到z範圍內任何乙個小寫字母相匹配

/[0-9]/

上述正規表示式將會與從0到9範圍內任何乙個數字相匹配。

/([a-z][a-z][0-9])+/

上述正規表示式將會與任何由字母和數字組成的字串,如 「ab0」 等相匹配。這裡需要提醒使用者注意的一點就是可以在正規表示式中使用 「()」 把字串組合在一起。「()」符號包含的內容必須同時出現在目標物件中。也就是說之間的表示式是與的關係。因此,上述正規表示式將無法與諸如 「xyz」等的字串匹配,因為「xyz」中的最後乙個字元為字母而非數字。

如果我們希望在正規表示式中實現類似程式設計邏輯中的「或」運算,在多個不同的模式中任選乙個進行匹配的話,可以使用管道符 「|」。例如:

/to|too|2/

上述正規表示式將會與目標物件中的 「to」, 「too」, 或 「2」 相匹配。

正規表示式中還有乙個較為常用的運算子,即否定符 「[^]」。與我們前文所介紹的定位符 「^」 不同,否定符 「[^]」規定目標物件中不能存在模式中所規定的字串。例如:

/[^a-c]/

上述字串將會與目標物件中除a,b,和c之外的任何字元相匹配。一般來說,當「^」出現在 「」內時就被視做否定運算子;而當「^」位於「」之外,或沒有「」時,則應當被視做定位符。

最後,當使用者需要在正規表示式的模式中加入元字元(把元字元當成普通的乙個字元,而非元字元時),並查詢其匹配物件時,可以使用轉義符「\」。例如:

/th\*/

上述正規表示式將會與目標物件中的「th*」而非「the」等相匹配。

總結:1.元字元所能管轄的范偉僅僅是其前面乙個字元(當不加括號的時候)

2.元字元表示連續出現的頻率時用{}.表示

3.定位符\b如果出現在表示式開頭,則匹配以表示式開頭的字串。如果出現在表示式結尾,則匹配以表示式結尾的字串。

4.當表示范偉時用「」.

5.當使用者需要將元字元作為普通字元作為表示式的一部分時,注意用轉義字元。在元字元前面加"\"。

JS中正規表示式

js中正規表示式有幾種不同的使用方法,一些用法是通過字串物件來使用,另外一些通過正規表示式物件使用。一 regexp 正規表示式 的屬性和方法 1 屬性 regexp的例項有幾個唯讀的屬性 global表示是否為全域性匹配,igorecase表示是否忽略大小寫,multiline表示是否為多行匹配,...

python中正規表示式

python中正規表示式語法與linux中的相容 檢視正規表示式 python提供re模組,包含所有正規表示式的功能。由於python的字串本身也用 轉義,所以要特別注意 s abc 001 python的字串 對應的正規表示式字串變成 abc 001 建議使用python的r字首,就不用考慮轉義的...

Java中正規表示式

jakarta oro一套文字處理工具,能提供perl5.0相容的正規表示式,awk like正規表示式,glob表示式。還提供替換,分割,檔名過慮等功能package com.yesky.apachelog.util.regex import org.apache.oro.text.regex.m...