正则表达式

正则表达式

英文:Regular Expression

含义:一种专门用于字符串处理的语言,通过数学算法来解决计算程序中的文本检索,匹配问题。

解决问题:

1.检索:通过正则表达式,从字符串中获取我们想要的部分

2.匹配:判断给定的字符串是否符合正则表达式的过滤逻辑

简单理解:一个书写规则,(例如判断用户的密码,邮箱是否合法)

正则表达式的组成

由普通字符以及特殊字符(元字符)组成。描述在查找文字主体时待匹配的一个或多个字符串
用小括号指定子表达式,也叫分组

定位元字符

正则表达式字符串前通常加@,这样不让编译器去解析其中的转义字符,而作为正则表达式的语法存在。


image.png

基本语法元字符

image.png

反义字符

image.png

重复描述字符

image.png

正则表达式的一些语法

方法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);
}
image.png

示例七:重复多个字符

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

你可能感兴趣的:(正则表达式)