正则表达式是计算机科学的一个重要概念,它使用一种数学算法来解决计算机程序中的文本检索、匹配等问题,正则表达式语言是一种专门用于字符串处理的语言,在很多语言中都提供了对它的支持。
正则表达式的作用:
- 检索:通过正则表达式,从字符串中获取我们想要的部分
- 匹配:判断给定的字符串是否符合正则表达式的过滤逻辑
所以我们可以认为正则表达式表述了一个字符串的书写规则。
正则表达式的书写规则:正则表达式是由普通自负和特殊字符(元字符)组成的文字模式。该模式描述在查找文字主体是待匹配的一个或多个字符串。
正则表达式内元字符的作用:因为正则表达式有很多元字符,每个元字符代表的意义都不同,我们可以直接去查询各个元字符的作用,提供其中一个能够查询的网址:http://www.jb51.net/shouce/jquery1.82/regexp.html
@符号:正则表达式内有许多特殊字符,比如转义字符“\n”,所以我们需要在正则表达式前加上@字符,使编译器不去解析其中的转义字符,而是作为正则表达式的语法(元字符)存在,例如:string s = @”www.baidu.com \n asdfjg”;
常用的操作正则表达式的方法和委托
1.静态方法IsMatch(返回值是一个布尔类型,用于判断指定的字符串是否与正则表达式字符串匹配,有三个重载方法)
//判断字符串是否符合一个纯数字的字符串
string pattern = @"^\d*$";
bool isMatch = Regex.IsMatch(s, pattern);
Console.WriteLine(isMatch);
2.静态方法Match,使用指定的匹配选项在输入字符串中搜索指定的正则表达式的第一个匹配项,返回一个包含有关匹配的信息的对象
3.Replace函数,实现字符串的替换功能
string pattern = @"[^ahou]"; //代表一个字符,除了ahou之外的任意一个字符
string s1 = Regex.Replace(s, pattern, "*");
Console.WriteLine(s1);
4.静态方法Split拆分文本,使用正则表达式匹配的位置,将文本拆分为一个字符串数组
string s = "zhangsan;lisi,wangwu.zhaoliu";
string pattern = @"[;,.]"; //使用分隔符来分割字符串
string pattern = @"[;]|[,]|[.]";
string[] resArray = Regex.Split(s,pattern);
foreach (var s1 in resArray)
{
Console.WriteLine(s1);
}
正则表达式难在它的语法很难看得懂,只要弄懂了表达式,操作字符串就容易很多了。