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类完成许多这类任务,而且性能更好。最后使用正则表达式进行高级的字符串处理是搜索和验证字符串的一种最佳工具。

csharp正则表达式的使用

目前为止,许多编程语言和工具都包含对正则表达式的支持,C#也不例外,C#基础类库中包含有一个命名空间(System.Text.RegularExpressions)和一系列可以充分发挥规则表达式威力的...
  • baidu_28955655
  • baidu_28955655
  • 2015年12月20日 18:23
  • 2075

CSharp中的正则表达式

一、正则表达式中的元字符  1. ".":    意思:除了\n以外的任意字符  2. "[]":   意思:字符组,任意单个字符,在中括号中任意一个字符  3. "|":    意思:表示或的意思,...
  • ForeverLove_1989
  • ForeverLove_1989
  • 2016年11月10日 11:32
  • 1521

c#正则表达式匹配整数和小数

用于判断Textbox中的输入是否为整数或者小数 参考资料:http://www.cnblogs.com/generalz/articles/1890097.html           ...
  • u011023096
  • u011023096
  • 2015年10月12日 11:08
  • 3069

c#中正则表达式大全

  • 2014年07月04日 20:29
  • 72KB
  • 下载

验证(C#和正则表达式)

我们经常会需要验证字符串的格式,比如密码长度范围、电子邮件格式、固定电话号码和手机号码格式等,这个时候我们经常会需要用到正则表达式。但是正则表达式用起来性能会低一点,所以在需要验证的时候能不使用正则表...
  • jumtre
  • jumtre
  • 2013年10月30日 14:11
  • 20036

正则表达式的作用

提供更强大的字符串处理能力,测试字符串内的模式,例如,可以测试输入字符串,以查看字符串内是否出现电话号码模式或身份证号码模式。即数据验证替换文本可以使用正则表达式来识别文档中的特定文本,完全删除该文本...
  • cui130
  • cui130
  • 2014年07月11日 10:55
  • 1625

正则表达式 "^+$"等符号意义

1、字符/: 意义:对于字符,通常表示按字面意义,指出接着的字符为特殊字符,不作解释. 例如:/b/匹配字符’b’,通过在b 前面加一个反斜杠,也就是/b/,则该字符变成特殊字符,表示匹配一个单词的分...
  • github_36362235
  • github_36362235
  • 2016年11月23日 11:31
  • 1782

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

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

读懂简单的正则表达式

读懂简单的正则表达式 最近学习过程中,遇到了一段用正则表达式验证email输入的代码 if(!/^\w+@\w+.\w+$/.test(value)){}//ps:这里的正则表达式有问题,后面已修正...
  • qq_35244529
  • qq_35244529
  • 2016年11月16日 22:33
  • 214

正则表达式

-----------android培训、java培训、java学习型技术博客、期待与您交流! ------------ 正则表达式 一、概述 1、概念:符合一定规则的表达式。 2、作用:用于...
  • shengfeixiang
  • shengfeixiang
  • 2013年04月19日 09:32
  • 2621
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C# 1小时看懂正则表达式
举报原因:
原因补充:

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