1、常用符号
代码 | 说明 |
---|---|
. | 匹配除换行符以外的任意字符 |
\w | 匹配字母或数字或下划线或汉字 |
\s | 匹配任意的空白符 |
\d | 匹配数字 |
\b | 匹配单词的开始或结束 |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结束 |
代码/语法 | 说明 |
---|---|
* | 重复零次或更多次 |
+ | 重复一次或更多次 |
? | 重复零次或一次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n到m次 |
代码/语法 | 说明 |
---|---|
\W | 匹配任意不是字母,数字,下划线,汉字的字符 |
\S | 匹配任意不是空白符的字符 |
\D | 匹配任意非数字的字符 |
\B | 匹配不是单词开头或结束的位置 |
[^x] | 匹配除了x以外的任意字符 |
[^aeiou] | 匹配除了aeiou这几个字母以外的任意字符 |
代码/语法 | 说明 |
---|---|
*? | 重复任意次,但尽可能少重复 |
+? | 重复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,}