中繼字元 | 意義 |
---|---|
^ (跳脫字元) | 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 | 空白字元以外的任何字元 |
\t | Tab |
\unnnn | Unicode 字元 (字元代碼由十六進位數字 nnnn 指定) |
\v | 垂直換頁字元 |
\w | 英文文字字元 (A-Z、a-z、0-9 或 _) (請注意,\w 不符合非英文字元,例如 È、Ò 或 Á) |
\W | 英文文字字元以外的任何字元 |
\xnn | ASCII 值字元 (字元代碼由十六進位數字 nn 所定義) |
旗標與屬性
旗標 | 屬性 | 說明 |
---|---|---|
g | global | 符合一個以上 |
i | ignoreCase | 不區分大小寫 (但不套用至擴充字元,如 é 和 È) |
m | multi-line | $ 符合行的開頭 ^ 符合行的結尾 |
s | dotall | . (點) 符合換行字元 (\n) |
x | extended | 允許忽略空格 |
簡單使用範例:
從外部讀入的 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 就好
沒有留言:
張貼留言