正则表达式

1、常用符号

表1.常用的元字符
代码说明
.匹配除换行符以外的任意字符
\w匹配字母或数字或下划线或汉字
\s匹配任意的空白符
\d匹配数字
\b匹配单词的开始或结束
^匹配字符串的开始
$匹配字符串的结束

 

 

表2.常用的限定符
代码/语法说明
*重复零次或更多次
+重复一次或更多次
?重复零次或一次
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次

 

表3.常用的反义代码
代码/语法说明
\W匹配任意不是字母,数字,下划线,汉字的字符
\S匹配任意不是空白符的字符
\D匹配任意非数字的字符
\B匹配不是单词开头或结束的位置
[^x]匹配除了x以外的任意字符
[^aeiou]匹配除了aeiou这几个字母以外的任意字符

 

表5.懒惰限定符
代码/语法说明
*?重复任意次,但尽可能少重复
+?重复1次或更多次,但尽可能少重复
??重复0次或1次,但尽可能少重复
{n,m}?重复n到m次,但尽可能少重复
{n,}?重复n次以上,但尽可能少重复
 

2、常用正则表达式

string regex = @"^[A-Za-z0-9]+$";  //匹配数字和字母
string regex = "^(?!_)[a-zA-Z0-9_]+$"; //匹配数字和字母、下划线,并且不以下划线开头

string regex = @"^(?!_)(?! )[\w ]+$"; //匹配数字、字母、下划线、汉字、空格,并且不以下划线、空格开头

string regex =@"^[a-zA-Z0-9]";
bool b= System.Text.RegularExpressions.Regex.IsMatch("aa", regex);   匹配字母和数字开头的字符串

 

        private void txtGUID_Leave(object sender, EventArgs e)
        {
            string regex = @"^[A-Za-z0-9]+$";  //匹配数字和字母
            if (txtGUID.Text != "" && System.Text.RegularExpressions.Regex.IsMatch(txtGUID.Text, regex) == false)  //8为back,32为空格,13回车键
            {
                CommControls.MessageBoxEx.MessageBoxEx.Show("GUID只能输入数字和字母", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                txtGUID.Text = "";
                txtGUID.Focus();
               
            }
        }

        private void txtCode_Leave(object sender, EventArgs e)
        {
            string regex = "^(?!_)[a-zA-Z0-9_]+$"; //匹配数字和字母、下划线,并且不以下划线开头
            if (txtCode.Text != "" && System.Text.RegularExpressions.Regex.IsMatch(txtCode.Text, regex) == false) 
            {
                CommControls.MessageBoxEx.MessageBoxEx.Show("编号只能由数字、字母、下划线组成,并且不以下划线开头", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                txtCode.Text = "";
                txtCode.Focus();
            }
        }

        private void txtName_Leave(object sender, EventArgs e)
        {
            string regex = @"^(?!_)(?! )[\w ]+$"; //匹配数字、字母、下划线、汉字,并且不以下划线开头
            if (txtName.Text!="" && System.Text.RegularExpressions.Regex.IsMatch(txtName.Text, regex)==false)
            {
                CommControls.MessageBoxEx.MessageBoxEx.Show("名称只能由数字、字母、下划线、汉字组成,并且不以下划线、空格开头", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                txtName.Text = "";
                txtName.Focus();
            }
        }

 

 
if (Regex.IsMatch(textBox2.Text, @"^(1[3|5|8][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9])$"))
{
}
else
{
    MessageBox.Show("手机号码不正确");
}
 

 

参考:http://www.oschina.net/question/12_9507

 

3、用正则表达式 判断特殊字符

            string regex :*?""<>|]";      //匹配特殊字符“\ / : * ? " < > |”

            string str = "ssrr<>ll";

            //找到匹配项,返回true;如果字符串中包含特殊字符“\ / : * ? " < > |”,返回true

            if (System.Text.RegularExpressions.Regex.IsMatch(str, regex))             

           {
                MessageBox.Show("是特殊字符", "提示");
            }

       注意写成:  string regex = @"^[\/:*?""<>|]$"; 则完全匹配字符,如匹配*或者?但是不匹配12*34,或者?56

                             string regex = @"^[\/:*?""<>|]+$";   匹配*或者?或者*?但是不匹配12*34,或者?56

          

            string regex = @"^[^\/:*?""<>|]+$";        
            string str = "12";
            if (System.Text.RegularExpressions.Regex.IsMatch(str, regex))
            {
                MessageBox.Show("不包含特殊字符", "提示");
            }

 

 

字符[xyz]
意义:一字符列表,匹配列出中的任一字符。你可以通过连字符-指出一个字符范围。
例如:[abcd]跟[a-c]一样。它们匹配"brisket"中的'b'和"ache"中的'c'。

字符[^xyz]
意义:一字符补集,也就是说,它匹配除了列出的字符外的所有东西。 你可以使用连字符-指出一
字符范围。
例如:[^abc]和[^a-c]等价,它们最早匹配"brisket"中的'r'和"chop."中的'h'。

+ 匹配前一项1次或多次,等价于{1,}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值