正则表达式-限定符_转义字符

正则表达式中的每一个元字符只能匹配一个字符,如果需匹配多个,则需使用限定符来表示字符自身出现的次数。

1、“?”:字符出现0次或者1次,如^ab?$,可以匹配字符串ab,a

2、“ * ”:指定字符至少出现0次,如^ab*$,可以匹配的字符a,ab,abb,abbb……

3、“+”:限定指定的字符至少出现1次,如^ab+$,ab,abb,abbb……

4、“{n}”:字符出现的次数,^ab{3}$,abbb

5、“{n,}”:指定字符至少出现的次数,^ab{3,}$,abbb,abbbb……

6、“{n,m}”:字符出现的次数在n和m之间

转义字符“\”,如“\.”表示字符.。


比较实用的正则表达式:

1、验证输入的数是否为大于0的整数:@"^\+?[1-9][0-9]*$"

2、检查字符串中重复出现的次数:01.aspx页面添加一个textbox和一个button按钮,点击button触发一下事件。

       System.Text.RegularExpressions.MatchCollection match = System.Text.RegularExpressions.Regex.Matches
                                                               (TextBox1.Text, @"\b(?<word>\w+)\s+(\k<word>)\b",
                                                               System.Text.RegularExpressions.RegexOptions.Compiled |
                                                               System.Text.RegularExpressions.RegexOptions.IgnoreCase);
        if(match.Count!=0){
            foreach(System.Text.RegularExpressions.Match m in match){
                string word = m.Groups["word"].Value;
                Response.Write("<script>window.alert('重复的词:"+word.ToString()+"')</script>");
            }
        }

3、用来拆分字符串:02.aspx页面添加两个textbox空间,分别显示拆分前的字符串和拆分后的字符,添加一个button事件。

      if(Page.IsValid){
            string[] p_str = System.Text.RegularExpressions.Regex.Split(TextBox1.Text, "[1-9]");
            foreach (string s in p_str)
            {
                TextBox2.Text += s;
            }
        }

     可以将abgfhdjf56733hdjf546,截取成abgfhdjfhdjf

4、验证输入的是不是汉字:用IsMatch进行判断(以下也均用此判断),正则表达式为 @"^[\u4e00-\u9fa5]{1,}$"

5、验证是否为E-mail格式:@"^(([\w\.]+)@(([[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))|((\w+\.?)+)@([a-zA-Z]{2,4}|[0-9]{1,3})(\.[a-zA-Z]{2,4}))$"

6、验证IP地址:定义一个num = @"(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)",再将num放在对应的地方("^" + num + "\\." + num + "\\." + num + "\\." + num + "$")

7、验证是否为URL格式:@"http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?"

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值