一些例子
變量名:
程式設計語言中的變量名有一定的命名規則:隻能由字母,數字及下劃線組成,并且不能以數字開頭。
[a-zA-Z_][a-zA-Z_0-9]* 這個表達式即可滿足這樣的需求,如果有長度限制,比如不能多于32個字元,可把*換成區間量詞即可{0-31}, 為什麼不是{0-32},因為前面已經有了一個非數字字元了。
引号内的字元串:
"[^"]*" 表達式兩端比對字元串兩端的引号,字元組内除 " 的任何字元,數量不限。
美元金額:
首先看美元金額的一般寫法:$6583 , $7.00 , $39234.89 , $0.01 等。第一個位置一定是美元符号$,後面由數字和小數點組成,并且是兩位小數點,小數點前面至少有一個0到9的數字, 小數點後面的數字可有可無,當然連同小數點。
/$[0-9]+(/.[0-9]{0,2})?
這個表達式中第一個美元符号要用轉義符/ ,否則就成了行結束标志了,顯然不行。用了一個可選符?來比對小數點及後面的數字,簡潔而直接。
現在看似這個表達式應該可以勝任了,但是,它還不能比對 $2,234.98,還得需要改造。
/$([0-9],?)+(/.[0-9]{0,2})? 這樣一來比對以逗号隔開的金額就沒有問題了,但是美元金額還有另外一個寫法:$.98,小于一進制可省略前面的0。OK繼續改造:/$(([0-9],?)+)?(/.[0-9]{0,2})? ,嗯,現在看起來應該比較完備了。
HTML網頁位址:
靜态網頁位址的典型格式是:http://www.mysite.com/exmaple/inde.html (.htm)
可以看出該類字元串是由 http:// + 域名 + 目錄名 + 檔案名 +.html(htm) 組成的,再分析每個組成部分的規則。
http:// 可有可無。
域名隻能由字母,數字,下劃線,劃線,點号組成。
目錄名和檔案名就比較複雜了,能包含的字元也很多樣可以使用[-a-z0-9_:@&?=+,.!/~%$]* 來比對。
(http://)?[-a-z0-9_:@&?=+,.!/~%$]*.html?
(待續)