C# 1小时看懂正则表达式

原创 2014年06月17日 15:04:36

C# 正则表达式

正则表达式的作用:

在大的字符串中定位一个子字符串。(system.Text.RegularExpressions声明,expressions是表达式的意思。)

使用正则表达式:

1.      搜索n开头的字:

Const string pattern = @”\bn”//这里用了\b,表示一个字的边界.

MatchCollection myMatches = Regex.Matches(myText,pattern,RegexOptions.IgnoreCase|

RegexOptions.ExplicitCapture);

2 .  查找以字母a开头,以序列ion结尾的所有字:

Const stringpattern = @”\ba\S*ion\b”;

//这里,转义序列\S表示任何不是空白字符的字符。*是限定符,其含义是前面的字符可以重复任意次,包括0次。

3   其他一些要用到的特定字符或转义字符。如.表示除了换行符以外的所有单个字符。\.表示一个点。完整的列表请参考MSDN文档。

4   搜索man或map,使用序列man[n|p]。这里是把要替换的字符放在方括号里。如[n|p]表示搜索字符n或者p。搜索所有大写字母用[A-Z]。那么搜索一个整数应该怎么写呢。答案是[0-9]+。使用+表示至少要有这样一个数字,但是可以有多个数字,如999等都是匹配的。如ra+t可以用来搜索rat,raat,raaat等。(+表示可以重复1次或多次的前导字符)

匹配、组合和捕获

1        匹配URL。其中URL的格式是<protocol>://<address>:<port>,其中端口是可选的。可能有可能没有。例如:http://www.google.com:4355,那么可以使用下面的表达式:

\b(\S+)://([^:]+)(?::(\S+))?\b

解释:前导\b和尾随\b序列是确保考虑的是字的文本部分。在这个文本中,第一组(\S+)://会识别一个或多个不是空白的字符,其后是://。在HTTP URL开头会识别出http://。花括号表示把http存储为一组。后面的序列([^:]+)则在上述URL中识别字符串www.google.com,改组在遇到词的结尾(结束\b)时或标记另一组的冒号(:)时结束。下一组识别端口(本例是:4355)。后面?表示该组在匹配过程中是可选的,如果没有:xxxx,就不会妨碍匹配的标记。这非常重要,因为有的端口号不指定。为此,我们要嵌套两组:内部(\S+)组识别冒号后面的内容(本例中是4355)。外面组包含内部组,内部组前面是一个冒号,该组又在序列?:的后面。这个序列表示该组不应保存(只需要保存4355,不需要保存:4355)。不要把这两个冒号混淆了,第一个冒号是序列?:的一部分,表示不保存该组,第二个冒号是要搜索的文本。

2        在.NET类RegularExpressions就通过Group类和Capture类支持组和捕获。GroupCollection类和CaptureCollection类分别表示组和捕获的集合,Match类提供一个Groups属性,它返回相应的GroupCollection对象。Group类也相应的实现一个Captures属性,该属性返回CaptureCollection对象。

小结:

在应用程序中最常用的数据类型就是String数据类型,一般可以使用StringBuilder类完成许多这类任务,而且性能更好。最后使用正则表达式进行高级的字符串处理是搜索和验证字符串的一种最佳工具。

1小时教你学会正则表达式

  • 2007年12月27日 17:41
  • 34KB
  • 下载

看懂正则表达式

本文参考:http://deerchao.net/tutorials/regex/regex.htm(推荐!)   下面列出几个常见正则表达式并对其分析: 1 匹配只有汉字的字符串: ...

正则表达式入门级看懂语法

正则表达式入门级看懂语法

正则—一篇文章看懂正则表达式

正则表达式(Regular Expression )使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。正则表达式是由普...

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

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

阅读笔记:《C#字符串和正则表达式参考手册》 1-4章部分代码

#region P8:判断字符是标点、空白字符?             /*              string band = "The band";             Consol...

C#正则表达式(5):命名空间System.Text.RegularExpressions下面的类简介1

在命名空间RegularExpressions里有下面这些对象,10个类,一个代理,一个枚举类型 Classes   Class Description Ca...

半小时精通正则表达式

  • 2016年03月07日 11:05
  • 13KB
  • 下载

半小时了解正则表达式

  • 2014年08月14日 17:27
  • 327KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C# 1小时看懂正则表达式
举报原因:
原因补充:

(最多只允许输入30个字)