以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 Dot NET,C#,ASP,VB 』  (http://bbs.xml.org.cn/list.asp?boardid=43)
----  c#中的RegEx用法解释  (http://bbs.xml.org.cn/dispbbs.asp?boardid=43&rootid=&id=122388)


--  作者:卷积内核
--  发布时间:11/8/2011 11:02:00 AM

--  c#中的RegEx用法解释

RegEx是什么?
  RegEx是Visual Studio .NET中的正则表达式类 .NET中正则表达式的语法参见MSDN。该类包含许多方法,在此恕不赘述。
RegEx怎么用?
在C#中加入RegularExpression命名空间
  在C#中,要使用正则表达式类,请在源文件开头处添加以下语句:
  using System.Text.RegularExpressions;
静态Match方法
  使用静态Match方法,可以得到源中第一个匹配模式的连续子串。
  例如:
  Match myMatch = Regex.Match("asdf\r\nasdfasdf\r\n", @"\basdf\B");   Console.WriteLine(myMatch.Value);
  程序将输出asdf(这里匹配了文本中第二个asdf)
  静态的Match方法有2个重载,分别是
  Regex.Match(string input, string pattern);
  Regex.Match(string input, string pattern, RegexOptions options);
  第一种重载的参数表示:输入、模式
  第二种重载的参数表示:输入、模式、RegexOptions枚举的“按位或”组合。   RegexOptions枚举的有效值是:
  Complied表示编译此模式
  CultureInvariant表示不考虑文化背景
  ECMAScript表示符合ECMAScript,这个值只能和IgnoreCase、Multiline、Complied连用
  ExplicitCapture表示只保存显式命名的组
  IgnoreCase表示不区分输入的大小写
  IgnorePatternWhitespace表示去掉模式中的非转义空白,并启用由#标记的注释   Multiline表示多行模式,改变元字符^和$的含义,它们可以匹配行的开头和结尾   None表示无设置,此枚举项没有意义
  RightToLeft表示从右向左扫描、匹配,这时,静态的Match方法返回从右向左的第一个匹配
  Singleline表示单行模式,改变元字符.的意义,它可以匹配换行符
  注意:Multiline在没有ECMAScript的情况下,可以和Singleline连用。Singleline和Multiline不互斥,但是和ECMAScript互斥。
静态的Matches方法
  这个方法的重载形式同静态的Match方法,返回一个MatchCollection,表示输入中,匹配模式的匹配的集合。
静态的IsMatch方法
  此方法返回一个bool,重载形式同静态的Matches,若输入中匹配模式,返回true,否则返回false。
  可以理解为:IsMatch方法,返回Matches方法返回的集合是否为空。


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms