正则表达式
可以利用数学算法解决计算机中的文本检索和匹配问题;
是一种专门用于字符串处理的语言
检索:从字符串中获取我们想要的部分
匹配:判断给定的字符串是否符合正则表达式的过滤逻辑*/
//定位字符 ^ $
//string ss = "I am blue cat";
//string newstr = Regex.Replace(ss, "^", "开始-");//搜索字符串
//Console.WriteLine(newstr);//输出结果是:开始-I am blue cat
//string ss = "I am blue cat";
//string newstr = Regex.Replace(ss, "$", "开始-");//搜索字符串
//Console.WriteLine(newstr);//输出结果是:I am blue cat开始-
基本元字符
. 匹配除换行符以外的任意字符
\w 匹配字母、数字、下划线(指大小写字母、0-9的数字、下划线_)
\W \w的补集(除“大小写字母、0-9的数字、下划线_”以外)
\s 匹配任意空白字符(包括换行符/n、回车符/r、制表符/t、换页符/f)
\S \s的补集
\d 匹配数字(0-9的数字)
\D \d的补集(除“0-9的数字”之外)* /
\B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的字符
重复描述字符
{n} 匹配前面的字符n次
{n.} 匹配前面的字符n次或多于n次
{n,m} 匹配前面的字符n到m次
? 重复0次或者1次
+ 重复1次或者更多次
- 重复0次或者更多次
择一匹配符
| 将两个匹配条件进行逻辑或运算
对正则表达式进行分组
用小括号来指定子表达式
//示例1:只允许输入数字,用正则表达式表示: @"^\d*$"
string ss = Console.ReadLine();
string pattern = @"^\d*$";//输入的字符串必须全是数字 *代表多个或0个字符
bool ismatch = Regex.IsMatch(ss,pattern);
if (ismatch==true)
{
Console.WriteLine("输入的字符串合法");
}
else
{
Console.WriteLine("输入的字符串非法");
}
//示例2:只允许输入除大小写字母、0-9的数字、下划线_以外的字符,用正则表达式表示: @"^\W*$"
//示例3:找到除"ahou"以外的字符
string str = "I am a cat.";
string str = "I am a cat.";
string pattern1 = @"[^ahou]";//除了ahou中任意一个以外的一个字符
string sss = Regex.Replace(str, pattern1, "*");
Console.WriteLine(sss);//结果是**a**a**a**
//示例4:校验输入内容是否是合法QQ号 用正则表达式表示: @"^\d{5,12}$"(表示输入的QQ号必须是5-12位的全数字)
//示例5:查找数字或字母 MatchCollection newstr = Regex.Matches(str,@"\d|[a-z]");
//示例6:以分割符找出名字
string str = "zhangsan;lisi,wangwu.zhaoliu";
string pattern1 = @"[;,.]";//
string[] sss = Regex.Split(str, pattern1);
//示例7:重复多个字符使用(){2}进行分组限定
string str = "asasaab12ab__ldjgljglab34——ab89";
string pattern1 = @"(ab\w{2}){2}";//以ab开头,后面是两个字母或数字或下划线,重复两次前面条件
string[] sss = Regex.Replace(str, pattern1,"5555");//结果是:asasa5555ldjgljgl5555