正規表示式語法入門

2021-08-09 05:48:10 字數 1692 閱讀 6195

正規表示式看不懂?本文介紹簡單的正規表示式語法和幾個簡單的要點,幫助初學者來認識它。

首先是特殊字元的說明(看不懂沒關係,下面會有解釋):

特別字元描述$

匹配輸入字串的結尾位置。如果設定了 regexp 物件的 multiline 屬性,則 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字元本身,請使用 \$。

( )標記乙個子表示式的開始和結束位置。子表示式可以獲取供以後使用。要匹配這些字元,請使用 \( 和 \)。

*匹配前面的子表示式零次或多次。要匹配 * 字元,請使用 \*。

+匹配前面的子表示式一次或多次。要匹配 + 字元,請使用 \+。

.匹配除換行符 \n 之外的任何單字元。要匹配 . ,請使用 \. 。

[標記乙個中括號表示式的開始。要匹配 [,請使用 \[。

?匹配前面的子表示式零次或一次,或指明乙個非貪婪限定符。要匹配 ? 字元,請使用 \?。

\將下乙個字元標記為或特殊字元、或原義字元、或向後引用、或八進位制轉義符。例如, 'n' 匹配字元 'n'。'\n' 匹配換行符。序列 '\\' 匹配 "\",而 '\(' 則匹配 "("。

^匹配輸入字串的開始位置,除非在方括號表示式中使用,此時它表示不接受該字元集合。要匹配 ^ 字元本身,請使用 \^。

這樣的寫法,通常用來表示匹配的長度,比如a可以匹配aaa、aaaa、aaaaa,即表示長度為3到5的a字串。

要點三:轉義字元的使用

轉義字元就是『\』,比如乙個字串為abcd,用正規表示式可以表示為abcd\\},o表示三個o,但轉義字元後面的符號就沒有了特殊字元的含義,而可以作為普通字元使用。

有些諸如空格、回車這樣看不見的東西也是通過轉義字元來實現:

字元描述

\cx匹配由x指明的控制字元。例如, \cm 匹配乙個 control-m 或回車符。x 的值必須為 a-z 或 a-z 之一。否則,將 c 視為乙個原義的 'c' 字元。

\f匹配乙個換頁符。等價於 \x0c 和 \cl。

\n匹配乙個換行符。等價於 \x0a 和 \cj。

\r匹配乙個回車符。等價於 \x0d 和 \cm。

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

\s匹配任何非空白字元。等價於 [^ \f\n\r\t\v]。

\t匹配乙個製表符。等價於 \x09 和 \ci。

\v匹配乙個垂直製表符。等價於 \x0b 和 \ck。

字元描述

^匹配輸入字串開始的位置。如果設定了 regexp 物件的 multiline 屬性,^ 還會與 \n 或 \r 之後的位置匹配。

$匹配輸入字串結尾的位置。如果設定了 regexp 物件的 multiline 屬性,$ 還會與 \n 或 \r 之前的位置匹配。

\b匹配乙個字邊界,即字與空格間的位置。

\b非字邊界匹配。

舉幾個例子就很清楚了。比如「^a[0-9]b$」,匹配以a開頭、以b結尾、中間為一位數字的字串,它可以匹配a0b、a4b、a5b等,但不能匹配c4b、a4d、e4t之類的內容。

要點四:\b和\b的區別

要點五:^的不同含義

前面說到^表示字串的開頭位置,但在中括號表示式中它的意思就不一樣了。比如「[^a]」匹配乙個不是a的字元,它可以是除a以外的任何字元。

參考:本文**來自菜鳥教程。

正規表示式入門語法篇

正規表示式 使用單個字串來描述,匹配一系列符合某個語法規則的字串 例項化rexexp語法 1.var reg 此處為正規表示式 eg var reg d 2.var ref new 此處為正規表示式 eg var reg new d 正規表示式語法概念 正規表示式由兩種基本字元型別組成 原義文字字元...

正規表示式語法

jscript 8.0 正規表示式語法 正規表示式是一種文字模式,包括普通字元 例如,a 到 z 之間的字母 和特殊字元 稱為 元字元 模式描述在搜尋文字時要匹配的乙個或多個字串。表示式 匹配 s 匹配空行。d d 驗證由兩位數字 乙個連字元再加 5 位數字組成的 id 號。s s 匹配 html ...

正規表示式語法

下面是正規表示式的一些示例 表示式 匹配 s 匹配空行。例如,abc 匹配 plain 中的 a 向字符集。匹配未包含的任何字元。例如,abc 匹配 plain 中的 p cx 匹配由 x 指示的控制字元。正規表示式是一種文字模式,包括普通字元 例如,a 到 z 之間的字母 和特殊字元 稱為 元字元...