c 使用正则表达式 关于C#中正则表达式的使用

下面就来研究C#中的正则表达式,C#中的正则表达式包含在.NET基础类库的一个名称空间下,这个名称空间就是System.Text.RegularExpressions。该名称空间包括8个类,1个枚举,1个委托。他们分别是:

Capture:?包含一次匹配的结果;

CaptureCollection: Capture的序列;

Group:?一次组记录的结果,由Capture继承而来;

c 使用正则表达式 关于C#中正则表达式的使用

GroupCollection:表示捕获组的集合

Match:?一次表达式的匹配结果,由Group继承而来;

MatchCollection: Match的一个序列;

MatchEvaluator:?执行替换操作时使用的委托;

Regex:编译后的表达式的实例。

RegexCompilationInfo:提供编译器用于将正则表达式编译为独立程序集的信息

RegexOptions?提供用于设置正则表达式的枚举值

Regex类中还包含一些静态的方法:

Escape:?对字符串中的regex中的转义符进行转义;

IsMatch:?如果表达式在字符串中匹配,该方法返回一个布尔值;

Match:?返回Match的实例;

Matches:?返回一系列的Match的方法;

Replace:?用替换字符串替换匹配的表达式;

Split:?返回一系列由表达式决定的字符串;

Unescape:不对字符串中的转义字符转义。

Match m = Regex.Match("abracadabra", "(a|b|r)+");现在有了一个可以用于测试的Match类的实例,例如:if (m.Success){},如果想使用匹配的字符串,可以把它转换成一个字符串:

MesaageBox.Show("Match="+m.ToString());

这个例子可以得到如下的输出: Match=abra。这就是匹配的字符串了。

Regex?类表示只读正则表达式类。它还包含各种静态方法(在下面的实例中将逐一介绍),允许在不显式创建其他类的实例的情况下使用其他正则表达式类。以下代码示例创建了?Regex?类的实例并在初始化对象时定义一个简单的正则表达式。声明一个Regex对象变量:Regex objAlphaPatt;,接着创建Regex对象的一个实例,并定义其规则:objAlphaPatt=new Regex("[^a-zA-Z]");

IsMatch方法指示?Regex?构造函数中指定的正则表达式在输入字符串中是否找到匹配项。这是我们使用C#正则表达式时最常用的方法之一。下面的例子说明了IsMatch方法的使用:

if( ! objAlphaPatt.IsMatch("testisMatchMethod7654298"))

lblMsg.Text = "匹配成功";

else

lblMsg.Text = "匹配不成功";

? ?

这段代码执行的结果是“匹配不成功”

Escape方法表示把转义字符作为字符本身使用,而不再具有转义作用,最小的元字符集(、*、+、?、|、{、[、(、)、^、$、.、#?和空白)。Replace方法则是用指定的替换字符串替换由正则表达式定义的字符模式的所有匹配项。看下面的例子,还是使用上面定义的Regex对象:objAlphaPatt.Replace("this [test] ** replace and escape" ,Regex.Escape("()"));他的返回结果是:this()()test()()()()()replace()and()escape,如果不是Escape的话,则返回结果是:this()()test()()()()()replace()and()escape,Unescape?反转由?Escape?执行的转换,但是,Escape?无法完全反转?Unescape。

关于C#中正则表达式的使用_c# 正则表达式

Split方法是把由正则表达式匹配项定义的位置将输入字符串拆分为一个子字符串数组。例如:

Regex r = new Regex("-"); // Split on hyphens.

string[] s = r.Split("first-second-third");

for(int i=0;i<s.Length;i++)

{

Response.Write(s[i]+"<br>");

}

? ?

运行的结果是:

First

Second

Third

看上去和String的Split方法一样,但string的Split方法在由正则表达式而不是一组字符确定的分隔符处拆分字符串。

Match方法是在输入字符串中搜索正则表达式的匹配项,并Regex?类的?Match?方法返回?Match?对象,Match?类表示正则表达式匹配操作的结果。下面的例子演示Match方法的使用,并利用Match对象的Group属性返回Group对象:

string text = @"public string testMatchObj string s stringmatch ";

string pat = @"(w+)s+(string)";

// Compile the regular expression.

Regex r = new Regex(pat, RegexOptions.IgnoreCase);

// Match the regular expression pattern against a text string.

Match m = r.Match(text);

int matchCount = 0;

while (m.Success)

{

Response.Write("Match"+ (++matchCount) + "<br>");

for (int i = 1; i <= 2; i++)

{

Group g = m.Groups[i];

Response.Write("Group"+i+"='" + g + "'"+ "<br>");

CaptureCollection cc = g.Captures;

for (int j = 0; j < cc.Count; j++)

{

Capture c = cc[j];

Response.Write("Capture"+j+"='" + c + "', Position="+c.Index + "<br>");

}

}

m = m.NextMatch();

}

运行结果是:

Match1

Group1='public'

Capture0='public', Position=0

Group2='string'

Capture0='string', Position=7

Match2

Group1='testMatchObj'

Capture0='testMatchObj', Position=14

Group2='string'

Capture0='string', Position=27

Match3

Group1='s'

Capture0='s', Position=34

Group2='string'

Capture0='string', Position=36

MatchCollection?类表示成功的非重叠匹配的只读的集合,MatchCollection?的实例是由?Regex.Matches?属性返回的,下面的实例说明了通过在输入字符串中找到所有与Regex中指定的匹配并填充?MatchCollection。

MatchCollection mc;

Regex r = new Regex("match");

mc = r.Matches("matchcollectionregexmatchs");

for (int i = 0; i < mc.Count; i++)

{

Response.Write( mc[i].Value + " POS:" + mc[i].Index.ToString() + "<br>");

}

? ?

运行的结果是:

match POS:0

match POS:20

  

爱华网本文地址 » http://www.413yy.cn/a/8104320103/241428.html

更多阅读

意库创意园:大学生创业为‘自己的青春做主‘

系列专题:大学生就业              80后的年轻团队大学生创意作品 《跃》  2008年夏天,一部名为《奋斗》的热播电视剧把80后创业群体推向了前台,在金融危机席卷全球,就业形势不容乐观的背景下,这些“黄金一

对祖国的祝福语一句话 对祖国的祝福语

对祖国的祝福语1、春有希望和辉煌,夏有火红和热情,秋有金黄和成熟,冬有雪白和宁静,祖国四季皆似锦。2、对你的思念像袅袅的轻烟不绝如缕,对你的祝福如潺潺的流水伴随一生一世,国庆放长假,何不一起出去happy?3、真的绝望了,花果山被国家开

眼部去黑眼圈按摩法 如何正确的眼部按摩去除黑眼圈

如何正确的眼部按摩去除黑眼圈――简介今天给大家整理了如何正确的眼部按摩,眼周围肌肤是最嫩最薄的部分,也是最脆弱最容易出问题的部分,随着年龄的变大,我们眼部也会出现一些细纹或者是会出现松弛现象。如何正确眼部按摩使我们永葆青春

休养生息 适合休养生息的胜地

  世间美景何其多,而人生总是匆匆而逝。工作之余,要注意休息。推荐5个世界旅游胜地,它们是休养生息的好地方。  巴拿马  位于美国南部的巴拿马由于廉价的医疗费用而广受患者欢迎。根据国家政策分析中心的报告显示,同等手术在巴

防癌抗癌要坚持的饮食习惯

  人生在每个阶段都需重视健脑、护脑,因为脑部与身体其他部位有所不同,其生长发育必须给予充分营养,增进益智补脑食物,以尽量使之健康发育、保脑护脑延缓大脑的衰老,一旦营养失调,日后亦不可能用任何方法加以补救。健脑食品是滋补身体的

声明:《c 使用正则表达式 关于C#中正则表达式的使用》为网友眼不見心還念分享!如侵犯到您的合法权益请联系我们删除