本文摘自LTP.NET知識庫。
正則表達式的形式通常以下:html
/love/
其中位於「/」定界符之間的部分就是將要在目標對象中進行匹配的模式。正則表達式
用戶只要把但願查找匹配對象的模式內容放入「/」定界符之間便可。編程
爲了可以使用戶更加靈活的定製模式內容,正則表達式提供了專門的「元字符」。網絡
所謂元字符就是指那些在正則表達式中具備特殊意義的專用字符,能夠用來規定其前導字符(即位於元字符前面的字符)在目標對象中的出現模式。code
較爲經常使用的元字符包括: 「+」, 「*」,以及 「?」。 htm
其中, 對象
「+」元字符規定其前導字符必須在目標對象中連續出現一次或屢次,字符串
「*」元字符規定其前導字符必須在目標對象中出現零次或連續屢次,get
「?」元字符規定其前導對象必須在目標對象中連續出現零次或一次。博客
下面,就讓咱們來看一下正則表達式元字符的具體應用。
/fo+/
由於上述正則表達式中包含「+」元字符,表示能夠與目標對象中的 「fool」, 「fo」, 或者 「football」等在字母f後面連續出現一個或多個字母o的字符串相匹配。
/eg*/
由於上述正則表達式中包含「*」元字符,表示能夠與目標對象中的 「easy」, 「ego」, 或者 「egg」等在字母e後面連續出現零個或多個字母g的字符串相匹配。
/Wil?/
由於上述正則表達式中包含「?」元字符,表示能夠與目標對象中的 「Win」, 或者 「Wilson」,等在字母i後面連續出現零個或一個字母l的字符串相匹配。
除了元字符以外,用戶還能夠精確指定模式在匹配對象中出現的頻率。
例如,
/jim{2,6}/
上述正則表達式規定字符m能夠在匹配對象中連續出現2-6次,所以,上述正則表達式能夠同jimmy或jimmmmmy等字符串相匹配。
在對如何使用正則表達式有了初步瞭解以後,咱們來看一下其它幾個重要的元字符的使用方式。
s:用於匹配單個空格符,包括tab鍵和換行符;
S:用於匹配除單個空格符以外的全部字符;
d:用於匹配從0到9的數字;
w:用於匹配字母,數字或下劃線字符;
W:用於匹配全部與w不匹配的字符;
. :用於匹配除換行符以外的全部字符。
(說明:咱們能夠把s和S以及w和W看做互爲逆運算) 下面,咱們就經過實例看一下如何在正則表達式中使用上述元字符。
/\s+/
上述正則表達式能夠用於匹配目標對象中的一個或多個空格字符。
/\d000/
若是咱們手中有一份複雜的財務報表,那麼咱們能夠經過上述正則表達式垂手可得的查找到全部總額達千元的款項。
除了以上所介紹的元字符以外,正則表達式中還具備另一種較爲獨特的專用字符,即定位符。
定位符用於規定匹配模式在目標對象中的出現位置。
較爲經常使用的定位符包括: 「^」, 「$」, 「b」 以及 「B」。
其中,
「^」定位符規定匹配模式必須出如今目標字符串的開頭,
「$」定位符規定匹配模式必須出如今目標對象的結尾,
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」 等相匹配。
這裏須要提醒用戶注意的一點就是能夠在正則表達式中使用 「()」 把字符串組合在一塊兒。
「()」符號包含的內容必須同時出如今目標對象中。
所以,上述正則表達式將沒法與諸如 「abc」等的字符串匹配,由於「abc」中的最後一個字符爲字母而非數字。
若是咱們但願在正則表達式中實現相似編程邏輯中的「或」運算,在多個不一樣的模式中任選一個進行匹配的話,可使用管道符 「|」。
例如:
/to|too|2/
上述正則表達式將會與目標對象中的 「to」, 「too」, 或 「2」 相匹配。
正則表達式中還有一個較爲經常使用的運算符,即否認符 「[^]」。
與咱們前文所介紹的定位符 「^」 不一樣,否認符 「[^]」規定目標對象中不能存在模式中所規定的字符串。
例如:
/[^A-C]/
上述字符串將會與目標對象中除A,B,和C以外的任何字符相匹配。
通常來講,當「^」出如今 「[]」內時就被視作否認運算符;而當「^」位於「[]」以外,或沒有「[]」時,則應當被視作定位符。
最後,當用戶須要在正則表達式的模式中加入元字符,並查找其匹配對象時,可使用轉義符「」。
例如:
/Th\*/
上述正則表達式將會與目標對象中的「Th*」而非「The」等相匹配。
本文來自 木莊網絡博客> 正則表達式的基本語法