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

来源:互联网 发布:诺亚方舟 知乎 编辑:程序博客网 时间:2024/05/22 13:56

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

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- ./?%&=]*)?"

原创粉丝点击