正規表示式Regular Expression | 就是愛程式

文章推薦指數: 80 %
投票人數:10人

正規表示式Regular Expression ; /^xy/, 以“xy” 開始的字串,例如“xyz”, “xyab”(若要比對^,請使用\^), “axy”, “bxy” ; /xy$/ ... 本人,實在對正規表示式沒輒,前幾天跑去天瓏,居然還看到一本歐萊禮出的「精通正規表示式」(本人的膚淺譯名),真是傻眼,不過因為已經被另外一本將近一千八百元的原文書弄到心裡淌血,否則,大概也會衝動之下把他買下來吧!(雖然就算買到了也不見得有用…XD) Anyway,還是把一些資料給放在這裡,免得臨時要找找不到。

資料來源:張智星的網站–正規表示式 正規表示式 說明及範例 比對不成立之字串 /a/ 含字母“a”的字串,例如“ab”,“bac”,“cba” “xyz” /a./ 含字母“a”以及其後任一個字元的字串,例如“ab”,“bac”(若要比對.,請使用\.) “a”,“ba” /^xy/ 以“xy”開始的字串,例如“xyz”,“xyab”(若要比對^,請使用\^) “axy”,“bxy” /xy$/ 以“xy”結尾的字串,例如“axy”,“abxy”以“xy”結尾的字串,例如“axy”,“abxy”(若要比對$,請使用\$) “xya”,“xyb” [13579] 包含“1”或“3”或“5”或“7”或“9”的字串,例如:”a3b”,“1xy” “y2k” [0-9] 含數字之字串 不含數字之字串 [a-z0-9] 含數字或小寫字母之字串 不含數字及小寫字母之字串 [a-zA-Z0-9] 含數字或字母之字串 不含數字及字母之字串 b[aeiou]t “bat”,“bet”,“bit”,“bot”,“but” “bxt”,“bzt” [^0-9] 不含數字之字串(若要比對^,請使用\^) 含數字之字串 [^aeiouAEIOU] 不含母音之字串(若要比對^,請使用\^) 含母音之字串 [^\^] 不含“^”之字串,例如“xyz”,“abc” “xy^”,“a^bc” . 正規表示式的特定字元 說明 等效的正規表示式 \d 數字 [0-9] \D 非數字 [^0-9] \w 數字、字母、底線 [a-zA-Z0-9_] \W 非\w [^a-zA-Z0-9_] \s 空白字元 [\r\t\n\f] \S 非空白字元 [^\r\t\n\f] . 正規表示式 說明 /a?/ 零或一個a(若要比對?字元,請使用\?) /a+/ 一或多個a(若要比對+字元,請使用\+) /a*/ 零或多個a(若要比對*字元,請使用\*) /a{4}/ 四個a /a{5,10}/ 五至十個a /a{5,}/ 至少五個a /a{,3}/ 至多三個a /a.{5}b/ a和b中間夾五個(非換行)字元 . 字元 說明 簡單範例 \ 避開特殊字元 /A\*/可用於比對“A*”,其中*是一個特殊字元,為避開其特殊意義,所以必須加上“\” ^ 比對輸入列的啟始位置 /^A/可比對“Abcd”中的“A”,但不可比對“aAb” $ 比對輸入列的結束位置 /A$/可比對“bcdA”中的“A”,但不可比對“aAb” * 比對前一個字元零次或更多次 /bo*/可比對“Goodboook”中的“booo”,亦可比對“Goodbk”中的“b” + 比對前一個字元一次或更多次,等效於{1,} /a+/可比對“caaandy”中的“aaa”,但不可比對“cndy” ? 比對前一個字元零次或一次 /e?l/可比對“angel”中的“el”,也可以比對“angle”中的“l” . 比對任何一個字元(但換行符號不算) /.n/可比對“nay,anappleisonthetree”中的“an”和“on”,但不可比對“nay” (x) 比對x並將符合的部分存入一個變數 /(a*)and(b*)/可比對“aaaandbb”中的“aaa”和“bb”,並將這兩個比對得到的字串設定至變數RegExp.$1和RegExp.$2。

xy 比對x或y /a*b*/g可比對“aaaandbb”中的“aaa”和“bb” {n} 比對前一個字元n次,n為一個正整數 /a{3}/可比對“lllaaalaa”其中的“aaa”,但不可比對“aa” {n,} 比對前一個字元至少n次,n為一個正整數 /a{3,}/可比對“aaaaaaaaa”其中的“aaa”及“aaaa”,但不可比對“aa” {n,m} 比對前一個字元至少n次,至多m次,m、n均為正整數 /a{3,4}/可比對“aaaaaaaaaaaaaa”其中的“aaa”及“aaaa”,但不可比對“aa”及“aaaaa” [xyz] 比對中括弧內的任一個字元 /[ecm]/可比對“welcome”中的“e”或“c”或“m” [^xyz] 比對不在中括弧內出現的任一個字元 /[^ecm]/可比對“welcome”中的“w”、”l”、”o”,可見出其與[xyz]功能相反。

(同時請注意/^/與[^]之間功能的不同。

) [\b] 比對退位字元(Backspacecharacter) 可以比對一個backspace,也請注意[\b]與\b之間的差別 \b 比對英文字的邊界,例如空格 例如/\bn\w/可以比對“noonday”中的‘no’; /\wy\b/可比對“possiblyyesterday.”中的‘ly’ \B 比對非「英文字的邊界」 例如,/\w\Bn/可以比對“noonday”中的‘on’, 另外/y\B\w/可以比對“possiblyyesterday.”中的‘ye’ \cX 比對控制字元(Controlcharacter),其中X是一個控制字元 /\cM/可以比對一個字串中的control-M \d 比對任一個數字,等效於[0-9] /[\d]/可比對由“0”至“9”的任一數字但其餘如字母等就不可比對 \D 比對任一個非數字,等效於[^0-9] /[\D]/可比對“w”“a”…但不可比對如“7”“1”等數字 \f 比對form-feed 若是在文字中有發生“換頁”的行為則可以比對成功 \n 比對換行符號 若是在文字中有發生“換行”的行為則可以比對成功 \r 比對carriagereturn \s 比對任一個空白字元(Whitespacecharacter),等效於[\f\n\r\t\v] /\s\w*/可比對“Ab”中的“b” \S 比對任一個非空白字元,等效於[^\f\n\r\t\v] /\S/\w*可比對“Ab”中的“A” \t 比對定位字元(Tab) \v 比對垂直定位字元(Verticaltab) \w 比對數字字母字元(Alphanumericalcharacters)或底線字母(”_”),等效於[A-Za-z0-9_] /\w/可比對“.A_!9”中的“A”、”_”、”9″。

\W 比對非「數字字母字元或底線字母」,等效於[^A-Za-z0-9_] /\W/可比對“.A_!9”中的“.”、”“、”!”,可見其功能與/\w/恰好相反。

\ooctal 比對八進位,其中octal是八進位數目 /\oocetal123/可比對與八進位的ASCII中“123”所相對應的字元值。

\xhex 比對十六進位,其中hex是十六進位數目 /\xhex38/可比對與16進位的ASCII中“38”所相對應的字元。

分享:ShareFacebookTwitterRedditPrintEmailLikethis:LikeLoading... Relatedposts Postnavigation ←CSS圓角技術 正規表示式–Characters→ 5thoughtson“正規表示式RegularExpression” 正規式速查手冊也不錯喔,不曉得還有沒有賣就是了… http://www.oreilly.com.tw/product_perl.php?id=a160 Reply 我對這本也很心動….:D,有空再去天瓏敗個家吧!哈哈~ Reply Pingback:正規表示式RegularExpression«資訊與工作 Pingback:常-忘記的回憶-常»BlogArchive»RO外掛範例-判斷黑窗console出現的文字訊息 Pingback:[PHP]字串處理|hashman LeaveaReplyCancelreply Enteryourcommenthere... Fillinyourdetailsbeloworclickanicontologin: Email(required)(Addressnevermadepublic) Name(required) Website YouarecommentingusingyourWordPress.comaccount. ( Log Out /  Change ) YouarecommentingusingyourTwitteraccount. ( Log Out /  Change ) YouarecommentingusingyourFacebookaccount. ( Log Out /  Change ) Cancel Connectingto%s Notifymeofnewcommentsviaemail.Notifymeofnewpostsviaemail. Δ AteReport ☀最新消息請見ReadFirst 回頭再看,有些文章寫到自己都覺得爛,不過也得等到有時間才有空修改。

偶爾覺得自己要往目標奮力前進,不過不知不覺又跑到魔獸網站上面儲値,唉~真他馬的墮落啊! Ate’sCategories 程式開發(14) C++(3) PHP&MySQL(5) Python(3) 網頁標準化技術(33) CSS(14) 終極HTML與XHTML(7) 網站開發基本常識(12) DHTML(8) Ajax(2) Javascript(5) 整合應用(1) 難以歸類的(26) 現在的網路世界(11) 網站該有的企劃腦(7) 網路永遠不安全(1) 關於討厭的系統(4) 工作搞笑(1) 也算是駭客?(2) 要命的系統(1) 超愛Flex(17) ActionScript(4) AdobeFlex(5) mXML與XML(9) Privacy&Cookies:Thissiteusescookies.Bycontinuingtousethiswebsite,youagreetotheiruse. Tofindoutmore,includinghowtocontrolcookies,seehere: CookiePolicy Follow Following 就是愛程式 Signmeup AlreadyhaveaWordPress.comaccount?Loginnow. 就是愛程式 Customize Follow Following Signup Login Copyshortlink Reportthiscontent ViewpostinReader Managesubscriptions Collapsethisbar %dbloggerslikethis:



請為這篇文章評分?