正規表示式Regular Expression | 就是愛程式
文章推薦指數: 80 %
正規表示式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:
延伸文章資訊
- 1正規表示式- 維基百科,自由的百科全書
- 2正規表示式Regular Expression | 就是愛程式
正規表示式Regular Expression ; /^xy/, 以“xy” 開始的字串,例如“xyz”, “xyab”(若要比對^,請使用\^), “axy”, “bxy” ; /xy$/ ...
- 3正規表達式- JavaScript - MDN Web Docs
正規表達式是被用來匹配字串中字元組合的模式。在JavaScript 中,正規表達式也是物件,這些模式在RegExp 的exec (en-US) 和test (en-US) 方法中, ...
- 4Python正規表示式:不一定要會,但會了超省力
regular 是規則的意思,expression 則是表達的意思,中文翻譯把Regualr expression 翻譯成「正規表示式」,代表一種有規則、有規律的表達方式。 也有人把 ...
- 5十五分鐘認識正規表達式,解決所有文字難題
正規表達式(Regular Expression),是一種用來描述字串 符合某個語法規則 的模型(pattern),可以用來做文字的搜尋、比對、萃取、替代、轉換等等,在 ...