Thursday, April 26, 2007

Useful Regular Expressions

1.验证QQ号码(5位到8位的由数字组成的字符串)
^\d{5,12}$
注意,^和$分别代表字符串的开头与结尾,这里所谓的字符串指作为输入的值。比如

"
6675654
asd
"
这个用引号括起来的看作是一个字符串,其中第一个和最后一个字符分别是第一个引号后的空格以及最后一个引号前的换行符!
但是如果开启了行选项,则这个模式会逐行应用,即^和$应用于一行的开头和结尾,而非整个匹配字符串的开头和结尾!


2.IPv4地址,形如x.x.x.x的字符串,其中x可以取值2^0-(2^8-1)

^((25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)\.){3}(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)$

这个比较复杂,必须仔细看看。
首先,结构是^与$之间包含的一长串模式。其中
(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)是基本模式,用来匹配0-255,不妨看作X。则整个模式的结构事实上为
^X.{3}X$
即匹配三个x.的模式再匹配一个x。
对于X,可以看出是由四个选择组成的。
25[0-5]代表范围250-255
2[0-4]\d代表范围200-249
1\d\d代表范围100-199
[1-9]\d代表范围10-99
\d代表范围0-9


3.匹配一个单词(word)
\b\w+\b

"This is a comment line" 中除了空格外所有匹配(\w匹配
字母或数字或下划线或汉字
"
匹配,字母,或数字 或下划线 或汉字"则得到(匹配、字母、或数字、或下划线、或汉字)几个匹配。所谓的单词就是指几个连续的\w


4.匹配两个重复的单词

\b(\w+)\s+\1\b
5.
匹配中文字符的正则表达式: [\u4e00-\u9fa5]

6. 匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/
(其中/表示 文本正则表达式的开始或结束。若要匹配 / 字符,请使用 \/。)

7. 匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

8. 匹配网址URL的正则表达式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?

No comments: