本文就簡短的說明一下幾個常見的字元意義
- ^ :寫在 pattern 第一個位置時,表示其後一符號必須出現在字串開頭的位置。寫在 pattern 中間位置時則為否定之意,表示字串中不可有 ^ 之後一符號的內容。
- $:寫在 pattern 最後一個位置時,表示其前一符號必須出現在字串尾端的位置。
- *:表示字串中有 0 到無數個其前一符號的內容。
- +:表示字串中有 1 到無數個其前一符號的內容(至少有一個)。
- ?:表示字串中有 0 到 1個其前一符號的內容。
- { }:表示前一符號在字串中的重覆次數。例如A{2} 表示 'A' 重覆兩次 (即 'AA') ;A{2,}表示字串含有 2 到無數多個 'A' ;A{2,5} 表示含有 2 到 5 個 'A' 。
- . :表示一個任意字元。
- [ ]:表示字串含有括號中任一字元的內容。可以
-
表示一組連續字元,例如[A-Z]。注意, [] 僅代表一個字元,例如 [ABC]表示 'a' 或 'b' 或 'c' ,而不是 'abc' 。 - \:跳脫字元,例如要表示字串中含有 '/' 字元時,就必須寫成\/。
- |:「或」意,字串中含有 '|' 之前一符號或後一符號的內容。例如image\.(jpg|png) 表示 'image.jpg' 或 'image.png' 。通常會用 () 括住 '|' 的前後符號。
- \d:表示任何一個數字,意同 [0-9] 。
- \D:表示任何一個非數字,意同 [^0-9] 。
如果想試試這個功能的,也有網頁版的可以使用
以下為常用的正則表達式
- 網址:[a-zA-z]+://[^\s]*
- IP Address:((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
- 時間(小時:分鐘 24小時制):((1|0?)[0-9]|2[0-3]):([0-5][0-9])
- E-mail:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
- 日期(年-月-日):(\d{4}|\d{2})-((0?([1-9]))|(1[1|2]))-((0?[1-9])|([12]([1-9]))|(3[0|1]))
- 日期(月/日/年):((0?[1-9]{1})|(1[1|2]))/(0?[1-9]|([12][1-9])|(3[0|1]))/(\d{4}|\d{2})
- 正整數:[0-9]*[1-9][0-9]*
- 非負整數(正整數或零):\d+
- 負整數:-[0-9]*[1-9][0-9]*
- 整數:-?\d+
- 小數:(-?\d+)(\.\d+)?
其它相關的學習資源
http://blog.miniasp.com/post/2008/03/23/Regular-Expression-Regex-Learning-Resources.aspx
沒有留言:
張貼留言