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.aihuau.com/a/8104320103/241428.html

更多阅读

纳兰心事有谁知 (下) 杨雨纳兰心事有谁知

纳兰明珠是康熙年间权倾朝野的一代权相,按理说,出生在温柔富贵乡里的纳兰性德应该感觉很幸运、很知足,然而在纳兰的心里,却一直有一个解不开的“结”,这个“结”就是他的贵族身份。一心向往江湖生活的纳兰,对权贵很是排斥,甚至鄙视。这样的

素妈的月子食谱、催奶下奶食谱 月子催奶食谱大全

生后孩子后,素妈的月子餐变得很重要。如果是母乳喂养,那么下奶催奶又是一个重点了。无论是平常还是孕期、做月子,素食的人还是那句话,一定要注意搭配,多品种,多花样,不挑食,不偏食,就一定不会营养不好。下面是我和静莲师兄两人的月子餐与催奶

第36节:只有过程能带给我们“活”的价值(10)

系列专题:《成功宝典:励志大师不告诉你的秘密》  有这样一个故事,一个富人拿出一万元捐款,一个乞丐拿出自己仅有的馒头分一半给别人,谁更伟大?一万元对富人来说可能只是九牛一毛,但是那个馒头对乞丐来说却是全部财产。  丛飞就是这样

清明节:艾草煎饼的做法

  春分一过,迎来清明,闻着温暖的阳光,心里不自由地想起这个时节做的艾草煎饼。  用料  艾草50g,糯米粉150g,沙塘适量,粳米粉(加入这个吃起来不粘呀)50g  艾草煎饼的做法  找个小山坡,采摘一些新鲜的艾草  清水洗净后,锅

工商管理学习总结

  为提高各级经营管理人员的专业技能,培养其创新经营和现代管理意识,使其在工作中进一步更新观念、理清思路,公司举办了为期33天的工商管理培训班。我有幸参加了培训,学习了现代企业制度、企业战略管理、管理经济学、市场营销、电子商

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