在Windows应用程序中使用正则表达式

   总所周知,在ASP.NET应用程序中,可以通过数据验证控件来使用正则表达式,那么在Windows应用程序中,如何使用正则表达式呢?
   在Windows应用程序中,可以通过使用Regex类来自定义正则表达式。如下方法中使用的了Regex类(需要添加System.Text.RegularExpressions命名空间)的IsMatch方法来自定义正则表达式,验证文本框中的输入。
   Regex类表示只读正则表达式类。它还包含各种静态方法,允许在不显示创建类实例的情况下使用正则表达式类。
   Regex类的常用属性和方法说明如下:

   属   性                说   明
  CacheSize         获取或设置已编译正则表达式的当前Regex类的缓存中的最大项数
  Options           返回传入Regex构造函数的选项
  RightToLeft       获取一个值,该值只是正则表达式是否从右到左进行搜索

   方  法                 说  明
  IsMatch           指示正则表达式在输入字符串中是否找到匹配项
  Match             在输入字符串中搜索正则表达式的匹配项,并将精确结果作为单个Match对象返回 
  Matches           在输入字符串中搜索正则表达式的所有匹配项并返回所有成功的匹配,就像多次调用Match一样
  Replace           用指定的替换字符串替换由正则表达式定义的字符模式的所有匹配项
  Split             在由正则表达式匹配项定义的位置将输入字符串拆分为一个字符串数组

  下面列举一些常用的正则表达式。
  (1) 验证电子邮件
       a.  \w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 
       b.   \S+@\S+\\S+
  (2) 验证网址
       a.  http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
       b.  HTTP://\S+\. \S (字母大写)
       c.  http://\S+\. \S (字母小写)  
  (3) 其他
       \d{6} : 验证邮政编码。
       [0-9] : 表示0~9十个数字。
       \d* :表示任意个数字。
       \d{3,4}-\d{7,8} :表示中国大陆的固定电话号码。
       \d{2}-\d{5} : 验证由两位数字、一个连字符再加5位数字组成的ID号。
       <\s*(\S+)(\s[^>]*)?>[\s\S]*<\s*\/\L\s*> : 匹配HTML标记。

 1          验证输入字符串为数字 #region  验证输入字符串为数字
 2        /**//// <summary>
 3        /// 验证输入字符串为数字
 4        /// </summary>
 5        /// <param name="P_str_num">输入字符</param>
 6        /// <returns>返回一个bool类型的值</returns>

 7        public bool validateNum(string P_str_num)
 8        {
 9            return Regex.IsMatch(P_str_num, "^[0-9]*$");
10        }

11        #endregion

12
13          验证输入字符串为电话号码 #region  验证输入字符串为电话号码
14        /**//// <summary>
15        /// 验证输入字符串为电话号码
16        /// </summary>
17        /// <param name="P_str_phone">输入字符串</param>
18        /// <returns>返回一个bool类型的值</returns>

19        public bool validatePhone(string P_str_phone)
20        {
21            return Regex.IsMatch(P_str_phone, @"\d{3,4}-\d{7,8}");
22        }

23        #endregion

24
25          验证输入字符串为传真号码 #region  验证输入字符串为传真号码
26        /**//// <summary>
27        /// 验证输入字符串为传真号码
28        /// </summary>
29        /// <param name="P_str_fax">输入字符串</param>
30        /// <returns>返回一个bool类型的值</returns>

31        public bool validateFax(string P_str_fax)
32        {
33            return Regex.IsMatch(P_str_fax, @"86-\d{2,3}-\d{7,8}");
34        }

35        #endregion

36
37          验证输入字符串为邮政编码 #region  验证输入字符串为邮政编码
38        /**//// <summary>
39        /// 验证输入字符串为邮政编码
40        /// </summary>
41        /// <param name="P_str_postcode">输入字符串</param>
42        /// <returns>返回一个bool类型的值</returns>

43        public bool validatePostCode(string P_str_postcode)
44        {
45            return Regex.IsMatch(P_str_postcode, @"\d{6}");
46        }

47        #endregion

48
49          验证输入字符串为E-mail地址 #region  验证输入字符串为E-mail地址
50        /**//// <summary>
51        /// 验证输入字符串为E-mail地址
52        /// </summary>
53        /// <param name="P_str_email">输入字符串</param>
54        /// <returns>返回一个bool类型的值</returns>

55        public bool validateEmail(string P_str_email)
56        {
57            return Regex.IsMatch(P_str_email, 
                             @"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*");
58        }

59        #endregion

60
61          验证输入字符串为网络地址 #region  验证输入字符串为网络地址
62        /**//// <summary>
63        /// 验证输入字符串为网络地址
64        /// </summary>
65        /// <param name="P_str_naddress">输入字符串</param>
66        /// <returns>返回一个bool类型的值</returns>

67        public bool validateNAddress(string P_str_naddress)
68        {
69            return Regex.IsMatch(P_str_naddress, 
                             @"http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?");
70        }

71        #endregion
               

转载于:https://www.cnblogs.com/Dlonghow/archive/2007/12/21/1009793.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值