2009年7月14日 星期二

Regular Expression - General

Regular Expression 正規表示式

這是什麼東東?這個是.... 請看 Wikipedia XD

其中一種用法可以這樣來看,有一個句子
我們要怎麼樣來形容他?

這個形容的辭句也就是正規表示法的意思
比如說一個句子:『The 1st thing is to eat something.』
可以這樣形容:【The 數字st thing is to eat something.】

就差不多是這個意思,當然正規表示法有很多的符號可以使用
根據程式的不同,正規表示法有部份也會有所出入。

基本上一些特殊符號如下:




字元涵義解釋
\跳脫字元\\ 代表 \ 符號,\^ 代表 ^ 符號
.任意字元可以代表任何字元
^代表開頭^123 代表以 123 開頭的字串
$代表結尾123$ 代表以 123 結尾的字串
|或者123|456 代表是123或者456的字串


而三種括號也是有意義的:

一、小括弧 () ,將刮起來的形成一個群組
如 (a|b)cde 可以代表 acde 或者 bcde
和 a|bcde 不同,a|bcde可以代表 a 或者 bcde

二、中括弧 [] ,字元集合,即括號中的任何一個字元都可以
如 [ab]cde 功能與 (a|b)cde 相同,另外在[]中,.*|$+?(){}
各代表自身符號,並無特殊涵義,而 ^ 在[]內,則代表否定
如 [^12]abc 代表不是 1abc 和 2abc 的字串
另外 - 在[] 中可以代表 由...到... 的意思,如 [0-9A-Za-z]
代表 0~9、A~Z、a~z 的字元集合

三、大括號 {},為前一個字元出現次數,使用方式有幾種:
(n<=m且 n,m為非負整數)
{n} 必須出現n次
{n,} 出現 n 次以上
{n,m} 出現次數需介於 n~m之間
如 a{2}bc 只能代表 aabc
a{2,}bc 可以代表 aabc、aaabc... 但不能代表 abc
a{2,3}bc 只能代表 aabc 或 aaabc 其餘都不可以
另外如 .{2} 代表任意兩個字元

代表前一個字元出現次數的符號:





字元涵義解釋
?出現 0 or 1 次等同於{0,1}
+出現一次以上等同於{1,}
*出現零次以上等同於{0,}

這些是最常用的部份,其實 RegExp 還很廣
這邊先介紹基礎的部份

沒有留言:

張貼留言