前後中括號正則匹配

2021-09-07 22:04:10 字數 1262 閱讀 6330

在正規表示式中,前中括號 [ 屬於特殊字元,要匹配它,需要轉義,即加上 \;而後中括號 ] 不屬於特殊字元,不必加轉義字元。

var pattern = "(\[)"; // 錯誤,正確應該為:([\)

var flag = "gi";

var reg = new regexp(pattern, flag);

reg.exec("<>");

alert(regexp.$1);

以上**是不正確的,錯誤在 pattern,應該寫作 ([\)。即:對於前中括號 [,除了轉義字元,還應該用中括號括起來。

似乎不稀奇,稀奇在對後括號 ] 的處理上。

var pattern = "([\]])"; // 錯誤,正確應該為:(])

var flag = "gi";

var reg = new regexp(pattern, flag);

reg.exec("<>");

alert(regexp.$1);

以上**在 ie 中是正確的,但在 chrome 中,它確得不到我們想要的結果,錯誤同樣在 pattern,應該寫作 (])。即:對於後中括號 ],應該直接寫,既不能用轉義字元,也不能用中括號括起來。

資料:正規表示式中的特殊字元(需要轉義)

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

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

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

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

| 指明兩項之間的乙個選擇。要匹配 |,請使用 \|。

{ 標記限定符表示式的開始。要匹配 {,請使用 \{。

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

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

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

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

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

前後中括號正則匹配

在正規表示式中,前中括號 屬於特殊字元,要匹配它,需要轉義,即加上 而後中括號 不屬於特殊字元,不必加轉義字元。var pattern 錯誤,正確應該為 var flag gi var reg new regexp pattern,flag reg.exec alert regexp.1 以上 是不...

php判斷字串中前後括號是否匹配

思路 將字串內的括號分為前括號和後括號,匹配到前括號則直接儲存到陣列中,匹配到後括號,則跟之前儲存的前括號中最後乙個括號進行對比,如果匹配,則刪除前括號中的最後乙個匹配的括號,如果不匹配,則報錯。header content type text html charset utf 8 str 434 ...

正則中的小括號 中括號 大括號 分析

乙個示例 var reg d 18 19 20 d 0 1 9 1 012 0 1 9 1 0 9 2 0 9 3 01 d d x x 正規表示式的 有不同的意思。是為了提取匹配的字串。表示式中有幾個 就有幾個相應的匹配字串。s 表示連續的空格 製表符 其他空白。是定義匹配的字元範圍。比如 a z...