程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 前後中括號正則匹配

前後中括號正則匹配

編輯:C++入門知識

在正則表達式中,前中括號 [ 屬於特殊字符,要匹配它,需要轉義,即加上 \;而後中括號 ] 不屬於特殊字符,不必加轉義字符。  
  
var pattern = "(\[{1})"; // 錯誤,正確應該為:([\[]{1})  
var flag = "gi";  
var reg = new RegExp(pattern, flag);  
reg.exec("<>[]");  
alert(RegExp.$1);  
以上代碼是不正確的,錯誤在 pattern,應該寫作 ([\[]{1})。即:對於前中括號 [,除了轉義字符,還應該用中括號括起來。  
  
似乎不稀奇,稀奇在對後括號 ] 的處理上。  
  
var pattern = "([\]]{1})"; // 錯誤,正確應該為:(]{1})  
var flag = "gi";  
var reg = new RegExp(pattern, flag);  
reg.exec("<>[]");  
alert(RegExp.$1);  
以上代碼在 IE 中是正確的,但在 Chrome 中,它確得不到我們想要的結果,錯誤同樣在 pattern,應該寫作 (]{1})。即:對於後中括號 ],應該直接寫,既不能用轉義字符,也不能用中括號括起來。  
  
資料:正則表達式中的特殊字符(需要轉義)  
  
^ 匹配輸入字符串的開始位置,除非在方括號表達式中使用,此時它表示不接受該字符集合。要匹配 ^ 字符本身,請使用 \^。  
$ 匹配輸入字符串的結尾位置。如果設置了 RegExp 對象的 Multiline 屬性,則 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字符本身,請使用 \$。  
. 匹配除換行符 \n 之外的任何單字符。要匹配 .,請使用 \。  
\ 將下一個字符標記為或特殊字符、或原義字符、或後向引用、或八進制轉義符。例如, 'n' 匹配字符 'n'。'\n' 匹配換行符。序列 '\\' 匹配 "\",而 '\(' 則匹配 "("。  
| 指明兩項之間的一個選擇。要匹配 |,請使用 \|。  
{ 標記限定符表達式的開始。要匹配 {,請使用 \{。  
[ 標記一個中括號表達式的開始。要匹配 [,請使用 \[。  
( 和 ) 標記一個子表達式的開始和結束位置。子表達式可以獲取供以後使用。要匹配這些字符,請使用 \( 和 \)。  
* 匹配前面的子表達式零次或多次。要匹配 * 字符,請使用 \*。  
+ 匹配前面的子表達式一次或多次。要匹配 + 字符,請使用 \+。  
? 匹配前面的子表達式零次或一次,或指明一個非貪婪限定符。要匹配 ? 字符,請使用 \?。  

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved