asp.net正则表达式之学习与常用正则介绍
^ :(读:hat) 匹配一行的开始。例如正则表达式“^regex”能够匹配字符串“regex我会用”的开始,但是不能匹配“我会用regex”。
$ :类似^,匹配结尾。
| 表示 或 z|food 表示 z 或者 food 并非zood或food
[] 匹配括号中的任何一个字符
. (点)匹配除n之外的任何单个字符。
*:限定符,匹配0至多个在它之前的子表达式,和通配符*没关系。
+:限定符,类似* ,但必须出现一次。
? : 类似*,但是值是0次或1次。
{} :限定符号,表示前面的字符必须出现括号内填的次数。如[0-9]{6} 表示0-9中的任意数字必须出现6次。
{,}:如[0-9]{6,}表示至少出现6次,最多无限次。[0-9]{6,10}表示至少6次,最多10次。
d:代表一个数字,等同于[0-9] \d →d
D:代表非数字,等同于[^0-9]
s:代表换行符、Tab制表符等空白字符 ,(空格、回车、制表符)
S:代表非空白字符(a0%$@@)
w:匹配字母或数字或下划线或汉字,即能组成单词的字符,除%@!$等字符。[a-zA-Z0-9_汉字]
W:非w ,等同于[^w] %
限定符
限定符提供了一种简单方法,用于指定在模式中允许特定字符或字符集自身重复出现的次数。有 3 个非显式限定符:
*,描述“出现 0 或多次”。
+,描述“出现 1 或多次”。
?,描述“出现 0 或 1 次”。
限定符始终引用限定符前(左边)的模式,通常是单个字符,除非使用括号创建模式组。下面是一些模式示例及匹配的输入。
模式
输入(匹配)
fo*
foo、foe、food、fooot、“forget it”、funny、 puffy
fo+
foo、foe、food、foot、“forget it”
fo?
foo、foe、food、foot、“forget it”、funny、puffy
下面介绍一些常用的
匹配国内电话号码:d{3}-d{8}|d{4}-d{7} 评注:匹配形式如 0511-4405222 或 021-87888822
匹配腾讯QQ号:[1-9][0-9]{4,} 评注:腾讯QQ号从10000开始
匹配中国邮政编码:[1-9]d{5}(?!d) 评注:中国邮政编码为6位数字
匹配身份证:d{15}|d{18} 评注:中国的身份证为15位或18位
匹配ip地址:d+.d+.d+.d+ 评注:提取ip地址时有用
匹配某范围:@"<table>[sS]+?</table>"
匹配连接地址:</?(a|A)( .*?>|>)
匹配特定数字:
^[1-9]d*$ //匹配正整数
^-[1-9]d*$ //匹配负整数
^-?[1-9]d*$ //匹配整数
^[1-9]d*|0$ //匹配非负整数(正整数 + 0)
^-[1-9]d*|0$ //匹配非正整数(负整数 + 0)
^[1-9]d*.d*|0.d*[1-9]d*$ //匹配正浮点数
^-([1-9]d*.d*|0.d*[1-9]d*)$ //匹配负浮点数
^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$ //匹配浮点数
^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$ //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$ //匹配非正浮点数(负浮点数 + 0) 评注:处理大量数据时有用,具体应用时注意修正
匹配特定字符串:
^[A-Za-z]+$ //匹配由26个英文字母组成的字符串
^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串
^[a-z]+$ //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串
^w+$ //匹配由数字、26个英文字母或者下划线组成的字符串
模式
说明
^d{5}$
5 个数值数字,如美国邮政编码。
^(d{5})|(d{5}-d{4}$
5 个数值数字或 5 个数字-短划线-4 个数字。匹配 5 位数字格式的美国邮政编码,或 5 位数字 + 4 位数字格式的美国邮政编码。
^(d{5}(-d{4})?$
与前一个相同,但更有效。使用 ? 可使模式中的 4 位数字成为可选部分,而不是要求分别比较不同的两个模式(通过另一种方式)。
^[+-]?d+(.d+)?$
匹配任意有可选符号的实数。
^[+-]?d*.?d*$
与上一个相同,但也匹配空字符串。
^(20|21|22|23|[01]d)[0-5]d$
匹配 24 小时制时间值。
/*.**/
匹配 C 语言风格的注释 /* ... */
1.验证用户名和密码:("^[a-zA-Z]w{5,15}$")正确格式:"[A-Z][a-z]_[0-9]"组成,并且第一个字必须为字母 6~16位;
2.验证电话号码:("^(d{3.4}-)d{7,8}$")正确格式:xxx/xxxx-xxxxxxx/xxxxxxxx;
3.验证身份证号(15位或18位数字):("^d{15}|d{18}$");
4.验证Email地址:("^w+([-+.]w+)*@w+([-.]w+)* .w+([-.]w+)*$");
5.只能输入由数字和26个英文字母组成的字符串:("^[A-Za-z0-9]+$") ;
6.整数或者小数:^[0-9]+.{0,1}[0-9]{0,2}$
7.只能输入数字:"^[0-9]*$"。
8.只能输入n位的数字:"^d{n}$"。
9.只能输入至少n位的数字:"^d{n,}$"。
10.只能输入m~n位的数字:。"^d{m,n}$"
11.只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。
12.只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。
13.只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。
14.只能输入非零的正整数:"^+?[1-9][0-9]*$"。
15.只能输入非零的负整数:"^-[1-9][]0-9"*$。
16.只能输入长度为3的字符:"^.{3}$"。
17.只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。
18.只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。
19.只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。
20.验证是否含有^%&',;=?$"等字符:"[^%& ',;=?$x22]+"。
21.只能输入汉字:"^[u4e00-u9fa5]{0,}$"
22.验证URL:"^http://([w-]+.)+[w-]+(/[w-. /?%&=]*)?$"。
23.验证一年的12个月:"^(0?[1-9]|1[0-2])$"正确格式 为:"01"~"09"和"1"~"12"。
24.验证一个月的31天:"^((0?[1-9])|((1|2) [0-9])|30|31)$"正确格式为;"01"~"09"和"1"~"31"。
总结,不管是在asp.net 中php jsp java中等正则都是大同小义的,他们的规则也都差不多,不过正则是一件比较麻烦的事情很多程序员都只会最基本的。我想大家只要把上面的都会用了就差不多了。
补充:asp.net教程,.Net开发