C#正则表达式(1):入门简介

刚接触正则表达式时可能会觉得很晕乎.其实它的作用是很简单的,只不过实现的细节方面有些复杂.正则表达式是用来解析字符串的.而解析字符串不外乎是达到下面几种目的

 

1.验证某一长串字符串中是否有符合某个条件的子字符串

2.从长字符串中提取符合某个条件的子字符串

3.把符合条件的子字符串替换成另外的字符串

4.把一个字符串分割成几个小字符串

 

正则表达式的复杂主要是体现在怎么指定那个"条件".其实实现上面说的4个目的大部分时候用string类的一些函数也照样能实现.只不过有时太复杂了点

下面举几个简单的例子说下怎么实现上面的4个目的.使用正则表达式时要引用命名空间using System.Text.RegularExpressions;

1.验证字符

假如有字符串string str = "I am arwen";我们想验证下这个字符串里是否包含字符"wen".

用正则表达式:  bool exist = Regex.IsMatch(str, "wen");

用string类的函数:bool exist = str.Contains("wen");

2.提取字符

假如有字符串string str ="ahttpp://www.baidu.com/s?tn=sitehao12";我们想把字符www.baidu.com提取出来

用正则表达式:string subStr = Regex.Match(str, @"w{3}\..*\.com").Value;

用string类的函数:

int start = str.IndexOf("w");

int end = str.IndexOf("m");

string subStr = str.Substring(start, end - start + 1);

随着问题的复杂我们发现string类的函数就有点力不 从心了.假如是随便给一段未知的字符串,然后要求提取出一个网址来.用string类函数实现起来很复杂而且容易出错

而用上面那句简单的正则表达式就能正确的提取.

3.替换字符

还是和上面类似的例子,假如随便给一段字符串,把里面的网址替换成www.csdn.net

假设还是字符串string str ="ahttpp://www.baidu.com/s?tn=sitehao12";

用正则表达式.

string newStr = Regex.Replace(str, @"w{3}\..*\.com", "wwww.csdn.net");

这个用string的函数实现起来就更麻烦了啊.这里就不用它来实现了.反正思路就是要先搜索出字符串里的网址,再把它替换成www.csdn.net

 

4.分割字符

假如有字符string str = "http:ww/w.baidu.com";要以: / .这样的符号为分割符,把字符分割成只包含字母的子字符串

用正则表达式:

string[] strs = Regex.Split(str, @"[:/\.]");

用string类的函数

string[] strs = str.Split(new char[] { ':', '/', '.' });

 

 

 在上面的例子中我们会看到@"w{3}\..*\.com" 和@"[:/\.]这样奇怪的字符串,我们一般把它们叫作模式(pattern),也就是说通过它来指明要符合某个条件.在正则表达式的应用中最难的地方就是怎么通过它们来指定条件.其中的符号都有特殊的含义

 

 

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weiwenhp/article/details/7662883
个人分类: 4) C#
上一篇C# 函数参数传递(按值和引用)很容易混淆的概念啊
下一篇C#正则表达式(2):常用的特殊字符(元字符,限定字符)
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭