一些例子
变量名:
程序设计语言中的变量名有一定的命名规则:只能由字母,数字及下划线组成,并且不能以数字开头。
[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?
(待续)