当前位置:  编程技术>其它

正则表达式 c#

    来源: 互联网  发布时间:2014-10-12

    本文导语:  首先,我们先看几个实际的例子:  1.    验证输入字符是否javascript: var ex = "^\w+$"; var re = new RegExp(ex,"i"); return re.test(str);          VBScript Dim regEx,flag,ex ex = "^w+$" Set regEx = New RegExp regEx.IgnoreCase = True  regEx.Glob...

首先,我们先看几个实际的例子: 
1.    验证输入字符是否
javascript:
var ex = "^\w+$";
var re = new RegExp(ex,"i");
return re.test(str);

         VBScript

Dim regEx,flag,ex

ex = "^w+$"

Set regEx = New RegExp

regEx.IgnoreCase = True 

regEx.Global = True 

regEx.Pattern = ex

flag = regEx.Test( str )

              C#

System.String ex = @"^w+$";

              System.Text.RegularExpressions.Regex reg = new Regex( ex );                           
              bool flag = reg.IsMatch( str );

2.    验证邮件格式

C#

System.String ex = @"^w+@w+.w+$";

System.Text.RegularExpressions.Regex reg = new Regex( ex );

bool flag = reg.IsMatch( str );

3.    更改日期的格式(用 dd-mm-yy 的日期形式代替 mm/dd/yy 的日期形式)

C#

String MDYToDMY(String input) 

   {

      return Regex.Replace(input, 

         "\b(?\d{1,2})/(?\d{1,2})/(?\d{2,4})\b",

         "${day}-${month}-${year}");

   }

4.    从 URL 提取协议和端口号

C#

String Extension(String url) 

   {

      Regex r = new Regex(@"^(?w+)://[^/]+?(?:d+)?/",

         RegexOptions.Compiled);

      return r.Match(url).Result("${proto}${port}"); 

   }

这里的例子可能是我们在网页开发中,通常会碰到的一些正则表达式,尤其在第一个例子中,给出了使用javascript,vbScript,C#等不同语言的实现方式,大家不难看出,对于不同的语言来说,正则表达式没有区别,只是正则表达式的实现类不同而已。而如何发挥正则表达式的公用,也要看实现类的支持。

(摘自msdn: Microsoft .NET 框架 SDK 提供大量的正则表达式工具,使您能够高效地创建、比较和修改字符串,以及迅速地分析大量文本和数据以搜索、移除和替换文本模式。ms-help://MS.VSCC/MS.MSDNVS.2052/cpgenref/html/cpconregularexpressionslanguageelements.htm)

下面我们逐个来分析这些例子:

1-2,这两个例子很简单,只是简单的验证字符串是否符合正则表达式规定的格式,其中使用的语法,在第一篇文章中都已经介绍过了,这里做一下简单的描述。

第1个例子的表达式:  ^w+$

^ -- 表示限定匹配开始于字符串的开始

         w – 表示匹配英文字符

         + -- 表示匹配字符出现1次或多次

         $ -- 表示匹配字符到字符串结尾处结束

         验证形如asgasdfs的字符串

第2个例子的表达式:  ^w+@w+.w+$

^ -- 表示限定匹配开始于字符串的开始

w – 表示匹配英文字符

+ -- 表示匹配字符出现1次或多次

@ -- 匹配普通字符@

. – 匹配普通字符.(注意.为特殊字符,因此要加上转译)

$ -- 表示匹配字符到字符串结尾处结束

验证形如dragontt@sina.com的邮件格式

 

 

     第3 个例子中,使用了替换,因此,我们还是先来看看正则表达式中替换的定义:

(ms-help://MS.VSCC/MS.MSDNVS.2052/cpgenref/html/cpconsubstitutions.htm)

替换
字符
 含义

$123
 替换由组号 123(十进制)匹配的最后一个子字符串。

${name}
 替换由 (? ) 组匹配的最后一个子字符串。

$$
 替换单个“$”字符。

$&
 替换完全匹配本身的一个副本。

$`
 替换匹配前的输入字符串的所有文本。

$'
 替换匹配后的输入字符串的所有文本。

$+
 替换最后捕获的组。

$_
 替换整个输入字符串。



分组构造
(ms-help://MS.VSCC/MS.MSDNVS.2052/cpgenref/html/cpcongroupingconstructs.htm)

分组构造
 定义

( )
 捕获匹配的子字符串(或非捕获组;有关更多信息,请参阅正则表达式选项中的 ExplicitCapture 选项。)使用 () 的捕获根据左括号的顺序从 1 开始自动编号。捕获元素编号为零的第一个捕获是由整个正则表达式模式匹配的文本。

(? )
 将匹配的子字符串捕获到一个组名称或编号名称中。用于 name 的字符串不能包含任何标点符号,并且不能以数字开头。可以使用单引号替代尖括号,例如 (?'name')。

(? )
 平衡组定义。删除先前定义的 name2 组的定义并在 name1 组中存储先前定义的 name2 组和当前组之间的间隔。如果未定义 name2 组,则匹配将回溯。由于删除 name2 的最后一个定义会显示 name2 的先前定义,因此该构造允许将 name2 组的捕获堆栈用作计数器以跟踪嵌套构造(如括号)。在此构造中,name1 是可选的。可以使用单引号替代尖括号,例如 (?'name1-name2')。

(?: )
 非捕获组。

(?imnsx-imnsx: )
 应用或禁用子表达式中指定的选项。例如,(?i-s: ) 将打开不区分大小写并禁用单行模式。有关更多信息,请参阅正则表达式选项。

(?= )
 零宽度正预测先行断言。仅当子表达式在此位置的右侧匹配时才继续匹配。例如,w+(?=d) 与后跟数字的单词匹配,而不与该数字匹配。此构造不会回溯。

(?! )
 零宽度负预测先行断言。仅当子表达式不在此位置的右侧匹配时才继续匹配。例如,b(?!un)w+b 与不以 un 开头的单词匹配。

(?

    
 
 

您可能感兴趣的文章:

  • c#正则过滤图片标签 asp.net正则过滤的例子
  • C# 正则表达式读取Discuz帖子中附件的代码举例
  • c#匹配整数和小数的正则表达式
  • C# 正则判断一个数字的格式是否有逗号的代码
  • C#匹配中文字符串的4种正则表达式分享
  • c#转义字符串中的所有正则特殊字符方法示例
  • c# 正则指引--字符组
  • c#正则判断字符是否为中文的三种方法
  • C#的正则表达式Regex类使用简明教程
  • asp.net(c#) 使用Rex正则来生成字符串数组的代码
  • C#正则表达式分解和转换IP地址实例(C#正则表达式大全 c#正则表达式语法)
  • c#字符串使用正则表达式示例
  • C#正则表达式使用方法示例
  • c#判断字符是否为中文的三种方法分享(正则表达式判断)
  • 常用正则 常用的C#正则表达式
  • c#使用正则表达式匹配字符串验证URL示例
  • C#正则表达式获取下拉菜单(select)的相关属性值
  • c# 正则表达式 验证数字的方法
  • C#正则表达式的递归匹配分析
  • C#常用正则大全分享
  • Perl 正则表达式之角色化记忆
  • js正则表达式之RegExp对象之compile方法 编译正则表达式
  • Linux c++ boost库正则表达式用法
  • 正则表达式 表示 非指定字符串开头的正则
  • Python通过正则表达式获取,去除(过滤)或者替换HTML标签的几种方法
  • 正则表达式问题,使用正则表达式找出指定字符串并替换?
  • linux bash shell命令:文本搜索工具grep正则表达式元字符集(基本集)
  • 论坛 iis7站长之家
  • JS 正则表达式的相关方法(正则学习笔记1)
  • jQuery中的正则表达式分析 正则基础
  • java 正则表达式基础,实例学习资料收集大全 原创
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 正则匹配后面非指定字符的正则 原创
  • java使用正则表达校验手机号码示例(手机号码正则)
  • PHP html标签正则替换并可自定义正则规则
  • python正则表达式去掉数字中的逗号(python正则匹配逗号)
  • 正则表达式口诀_学习正则的朋友值得一看
  • Javascript里的两种使用正则的方法
  • 寻求正则表达试
  • 学习IP地址的正则表达式
  • asp.net正则表达式提取中文的代码示例
  • 正则表达式中使用变量赋值
  • 用正则表达式来表示中文
  • java正则表达式验证函数
  • linux下有什么函数可以处理正则表达式?
  • emacs里空行的正则表达式如何写?
  • 正则式 ^[^ ](.*[^ ])?$ 的含义
  • 正则式如何只匹配一个汉字?
  • 关于sed的正则表达式
  • 正则表达式小疑问
  • killall 正则表达式用法
  • 询问一个关于正则表达式的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3