正则表达式
英文:Regular Expression
含义:一种专门用于字符串处理的语言,通过数学算法来解决计算程序中的文本检索,匹配问题。
解决问题:
1.检索:通过正则表达式,从字符串中获取我们想要的部分
2.匹配:判断给定的字符串是否符合正则表达式的过滤逻辑
简单理解:一个书写规则,(例如判断用户的密码,邮箱是否合法)
正则表达式的组成
由普通字符以及特殊字符(元字符)组成。描述在查找文字主体时待匹配的一个或多个字符串
用小括号指定子表达式,也叫分组
定位元字符
正则表达式字符串前通常加@,这样不让编译器去解析其中的转义字符,而作为正则表达式的语法存在。
基本语法元字符
反义字符
重复描述字符
正则表达式的一些语法
方法Match(input:输入的字符串 pattern:检验的正则表达式,options:正则参数的配置(一般忽略大小写,多行在里面选择,多个参数时用"|"追加),matchTimeout:匹配超时间隔,一般不写),返回一个匹配项。Matches方法参数相同,返回多个匹配项。IsMatch方法参数相同,判断是否符合正则表达式,返回true或false。
Regex.Match(string input,string pattern);
Regex.Match(string input,string pattern,RegexOptions options);
Regex.Match(string input,string pattern,RegexOptions options,TimeSpan matchTimeout);
Regex.Matches(string input,string pattern);
Regex.Matches(string input,string pattern,RegexOptions options);
Regex.Matches(string input,string pattern,RegexOptions options,TimeSpan matchTimeout);
Replace替换函数的简单用法(源字符串,匹配的正则,替换成的字符串)
string a = "Hello World";
string result = Regex.Replace(a, "^", "开始:"); //正则表达式匹配到字符串的开始位置并替换
//result的show:开始:Hello World
string a = "Hello World";
string result = Regex.Replace(a, "$", "结束");//正则表达式匹配到字符串的末尾位置并替换
//result的show:Hello World结束
Split拆分函数的简单用法(源字符串,拆分的正则,(配置参数),(超时间隔)),返回字符串数组
string str="zhangsan;lisi,wangwu.";
string pattern=@"[;,.]";
string []ar=Regex.Split(s,pattern);
示例一:检测字符串全都是数字
string pattern = @"^\d*$";
Regex.IsMatch("124124", pattern);//返回true
Regex.IsMatch("12412fds4", pattern);//返回false
示例二:检测字符串是否只有数字,大小写字母,下划线
string pattern = @"^\w*$";
Regex.IsMatch("12fsd4124", pattern);//返回true
Regex.IsMatch("12fsd4~124", pattern);//返回false
示例三:检测字符串是否包含abc中的任意一个
string pattern = @"[abc]";
Regex.IsMatch("fer", pattern); //返回false
Regex.IsMatch("fadsfabc", pattern); //返回true
示例四:替换除abc以外的任意字符为*
string pattern = @"[^abc]";
Regex.Replace("I am AC", pattern, "*"); //返回字符串"**a****"
示例五:检测5-8位的数字
string pattern = @"^\d{5,8}$";
Regex.IsMatch("324325343",pattern); //返回true
示例六:查找数字或字母
string pattern = @"^\d|[a-z]";
MatchCollection a = Regex.Matches("34((fjsdga%$%#$鲁道夫就是离开", pattern);
foreach (var item in a)
{
Console.WriteLine(item);
}
示例七:重复多个字符
string strGroup=@"(ab\w{2}){2}" //等价于 ab\w{2}ab\w{2}
string temp = Regex.Replace("fjsdfabfsf", strGroup,"*");//只有一组ab\w,所以不替换
string temp = Regex.Replace("fjsdfabfsabsf", strGroup,"*"); //替换为fjsdf*
示例八:正则表达式校验ipv4
string pattern=@"^(((2[0-4]\d|25[0-5]|[01]?\d\d?.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?))$";
其他语法:https://blog.csdn.net/u010332284/article/details/78180298