標籤雲

搜尋此網誌

2009/02/16

RegExp 正規表示式-符號意義參考表

中繼字元
中繼字元意義
^ (跳脫字元)1.字串的開頭
2.設定 m 旗標時,代表行的開頭
3.用於字元類別時, 代表"負"(相反)
$ (貨幣符號)1.字串的結尾
2.設定 m 旗標時,代表行的結尾(\n前的位置)
\ (反斜線)特殊字元跳脫符號

. (點)

1.任何單一字元
2.設定 s 旗標時,代表換行 (\n)
* (星號)重複 0 或 多 次
+ (加號)重複 1 或 多 次
? (問號)重複 0 或 1 次
( )定義群組
[ ]定義字元類別 (在字元類別(通常是中繼字元)中,其它字元會被視為一般字元,因此無須加上反斜線)
| (管道)替代 (就是"或"的意思)

中繼序列

中繼序列意義
{ }數量詞
{n} 代表重複 n 次; {n, } 代表重複 n 次以上; {n1, n2} 代表重複 n1~n2 次
\b文字字元和非文字字元之間的位置
\B兩個文字字元之間的位置。也符合兩個非文字字元之間的位置

\d

十進位數字(意思就是 0-9 )
\D數字外任何字元
\f換頁
\n換行
\r回車符號(Enter)
\s任何空白字元 (空格、定位點、新行或傳回字元)
\S空白字元以外的任何字元
\tTab

\unnnn

Unicode 字元
(字元代碼由十六進位數字 nnnn 指定)
\v垂直換頁字元
\w英文文字字元 (A-Z、a-z、0-9 或 _)
(請注意,\w 不符合非英文字元,例如 È、Ò 或 Á)
\W英文文字字元以外的任何字元
\xnn ASCII 值字元
(字元代碼由十六進位數字 nn 所定義)

旗標與屬性
旗標屬性說明
gglobal

符合一個以上

i

ignoreCase

不區分大小寫
(但不套用至擴充字元,如 é 和 È)
mmulti-line$ 符合行的開頭
^ 符合行的結尾
sdotall. (點) 符合換行字元 (\n)
xextended允許忽略空格


簡單使用範例:
從外部讀入的 XML 或文字檔資料如果內容不止一行
那麼直接拿來顯示時在格式上"可能"會有多餘空行的問題
這時可以利用正規表示式這麼解決:

var s:String = e.target.data as String; //來源字串
var pattern:RegExp = new RegExp(/\r\n/g);
s = s.replace(pattern, "\n");

意思就是將來源字串利用 String 的 replace 方法將換行 \r\n 換成一個 \n 就好

沒有留言: