asp.net正则表达式之学习与常用正则介绍

作者:袖梨 2022-06-25


^ :(读: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地址时有用

匹配某范围:@"

[sS]+?
"
匹配连接地址:|>)
匹配特定数字:
^[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中等正则都是大同小义的,他们的规则也都差不多,不过正则是一件比较麻烦的事情很多程序员都只会最基本的。我想大家只要把上面的都会用了就差不多了。

相关文章

精彩推荐