这篇文章主要介绍了C#中模式字符串怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
利用正则表达式实现字符串搜索,在C#中使用.NET一般表达式引擎
下面将通过一个样例的开发,执行并显示一些搜索的结果,说明一般表达式的一些特性,以及如何在C#中使用.NET一般表达式引擎。说明使用字符串时应在前面加上符号@
String Text=@"I can not find my position in Beijing";
把这个文本称为输入字符串,为了说明一般表达式.NET类,本文先进行一次纯文本的搜索,这次搜索不带任何转义序列或一般表达式命令。假定要查找所有字符串ion,把这个搜索字符串称为模式。使用一般表达式和上面声明的变量Text,编写出下面的代码:
String Pattern = "ion"; MatchCollection Matches = Regex.Matches(Text,Pattern,RegexOptions); foreach(Match NextMatch in Matches) { Console.WriteLine(NextMatch.Index); }
在这段代码中,使用了System.Text.RegularExpressions名称空间中Regex类的静态方法Match()。这个方法的参数是一些输入文本、一个模式和RegexOptions每句中的一组可选标志。Matches()返回MatchCollection,每个匹配都用一个 Match对象来表示。在上面的代码中,只是在集合中迭代,使用Match类的Index属性,返回输入文本中匹配所在的索引。运行这段代码,将得到1个匹配项。
一般集合的功能主要取决于C#模式字符串。原因是C#模式字符串不仅仅包含纯文本。如前所述。还包含元字符和转义序列,元字符是给出命令的特殊字符,而转义序列的工作方式与C#的转义序列相同,它们都是以反斜杠/开头的字符,具有特殊的含义。例如,假定要查找以n开头的字,就可以使用转义序列/b,它表示一个字的边界(字的边界是以某个字母数字标的字符开头,或者后面是一个空白字符或标点符号),下面编写如下代码:
String Pattern = @"/bn"; MatchCollection Matches = Regex.Matches(Text,Pattern,RegexOptions.IgnoreCase| RegexOptions.ExplicitCapture);
要在运行时把/b传递给.NET一般表达式引擎,反斜杠/不应被C#编译器解释为转义序列。如果要查找以序列ion结尾的字,可以使用下面的代码:
String Pattern = @"ion/b";
如果要查找以字母n开头,以序列ion结尾的所有字,需要一个以/bn开头,以ion/b结尾的模式,中间内容怎么办?需要告诉计算机n和ion中间的内容可以是任意长度的字符,只要字符不是空白即可,正确的模式如下所示:
String Pattern = @"/bn/S*ion/b";
感谢你能够认真阅读完这篇文章,希望小编分享的“C#中模式字符串怎么用”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
原创文章,作者:254126420,如若转载,请注明出处:https://blog.ytso.com/230427.html