![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
正则
暗尘掩月
这个作者很懒,什么都没留下…
展开
-
十年生死两茫茫
十年生死两茫茫,写程序,到天亮。千行代码,Bug何处藏。纵使上线又怎样,朝令改,夕断肠。领导每天新想法,天天改,日日忙。相顾无言,惟有泪千行。 每晚灯火阑珊处,程序员,又加班,工作狂~原创 2011-09-03 15:05:32 · 1063 阅读 · 0 评论 -
正则表达式学习记录-字符转义
如果你想查找元字符本身的话,比如你查找.,或者*,就出现了问题:你没办法指定它们,因为它们会被解释成别的意思。这时你就得使用\来取消这些字符的特殊意义。因此,你应该使用\.和\*。当然,要查找\本身,你也得用\\.例如:deerchao\.net匹配deerchao.net,原创 2011-08-27 17:02:33 · 250 阅读 · 0 评论 -
正则表达式学习记录-重复
你已经看过了前面的*,+,{2},{5,12}这几个匹配重复的方式了。下面是正则表达式中所有的限定符(指定数量的代码,例如*,{5,12}等):表2.常用的限定符代码/语法说明*重复零次或更多次+重复一次或更多次原创 2011-08-27 17:03:16 · 257 阅读 · 0 评论 -
正则表达式学习记录-分组
我们已经提到了怎么重复单个字符(直接在字符后面加上限定符就行了);但如果想要重复多个字符又该怎么办?你可以用小括号来指定子表达式(也叫做分组),然后你就可以指定这个子表达式的重复次数了,你也可以对子表达式进行其它一些操作(后面会有介绍)。(\d{1,3}\.){3}\d{1,原创 2011-08-27 17:05:07 · 312 阅读 · 0 评论 -
正则表达式学习记录-注释
小括号的另一种用途是通过语法(?#comment)来包含注释。例如:2[0-4]\d(?#200-249)|25[0-5](?#250-255)|[01]?\d\d?(?#0-199)。要包含注释的话,最好是启用“忽略模式里的空白符”选项,这样在编写表达式时能任意的添加空格,原创 2011-08-27 17:09:04 · 286 阅读 · 0 评论 -
还有些什么东西没提到
上边已经描述了构造正则表达式的大量元素,但是还有很多没有提到的东西。下面是一些未提到的元素的列表,包含语法和简单的说明。你可以在网上找到更详细的参考资料来学习它们--当你需要用到它们的时候。如果你安装了MSDN Library,你也可以在里面找到.net下正则表达式详细的文档。原创 2011-08-27 17:11:40 · 299 阅读 · 0 评论 -
正则表达式学习记录-元字符
现在已经知道几个很有用的元字符了,如\b,.,*,还有\d.正则表达式里还有更多的元字符,比如\s匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等。\w匹配字母或数字或下划线或汉字等。对中文/汉字的特殊处理是由.Net提供的正则表达式引擎支持的,其它环境下原创 2011-08-27 17:01:44 · 260 阅读 · 0 评论 -
正则表达式学习记录-负向零宽断言
前面我们提到过怎么查找不是某个字符或不在某个字符类里的字符的方法(反义)。但是如果我们只是想要确保某个字符没有出现,但并不想去匹配它时怎么办?例如,如果我们想查找这样的单词--它里面出现了字母q,但是q后面跟的不是字母u,我们可以尝试这样:\b\w*q[^u]\w*\b匹配包原创 2011-08-27 17:08:18 · 360 阅读 · 0 评论 -
参考文献
微软的正则表达式教程System.Text.RegularExpressions.Regex类(MSDN)专业的正则表达式教学网站(英文) 关于.Net下的平衡组的详细讨论(英文)Mastering Regular Expressions (Second Editio原创 2011-08-27 17:12:30 · 367 阅读 · 0 评论 -
正则全部符号解释
字符描述\将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 '\\' 匹配 "\" 而 "\(" 则匹配 "("。^匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置。$原创 2011-12-20 15:25:13 · 474 阅读 · 0 评论 -
正则表达式学习记录-入门
学习正则表达式的最好方法是从例子开始,理解例子之后再自己对例子进行修改,实验。下面给出了不少简单的例子,并对它们作了详细的说明。假设你在一篇英文小说里查找hi,你可以使用正则表达式hi。这几乎是最简单的正则表达式了,它可以精确匹配这样的字符串:由两个字符组成,前一个字符是原创 2011-08-27 16:57:46 · 248 阅读 · 0 评论 -
正则表达式学习记录-正则表达式到底是什么东西?
在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。很可能你使用过Windows/Dos下用于文件查找的通配符(wildcard),也就是*和?。如果你想查找某个目录下的原创 2011-08-27 16:56:35 · 292 阅读 · 0 评论 -
平衡组/递归匹配
有时我们需要匹配像( 100 * ( 50 + 15 ) )这样的可嵌套的层次性结构,这时简单地使用\(.+\)则只会匹配到最左边的左括号和最右边的右括号之间的内容(这里我们讨论的是贪婪模式,懒惰模式也有下面的问题)。假如原来的字符串里的左括号和右括号出现的次数不相等,比如( 5原创 2011-08-27 17:11:08 · 514 阅读 · 0 评论 -
URL
老赵 http://www.cnblogs.com/JeffreyZhao/InfoQ http://www.infoq.com/cn/CodePlex http://www.codeplex.com/CodeProject http://www.code原创 2011-09-17 09:55:40 · 369 阅读 · 0 评论 -
正则表达式学习记录-字符类
要想查找数字,字母或数字,空白是很简单的,因为已经有了对应这些字符集合的元字符,但是如果你想匹配没有预定义元字符的字符集合(比如元音字母a,e,i,o,u),应该怎么办?很简单,你只需要在方括号里列出它们就行了,像[aeiou]就匹配任何一个英文元音字母,[.?!]匹配标点符原创 2011-08-27 17:04:01 · 218 阅读 · 0 评论 -
正则表达式学习记录-分枝条件
不幸的是,刚才那个表达式也能匹配010)12345678或(022-87654321这样的“不正确”的格式。要解决这个问题,我们需要用到分枝条件。正则表达式里的分枝条件指的是有几种规则,如果满足其中任意一种规则都应该当成匹配,具体方法是用|把不同的规则分隔开。听不明白?没关系,看原创 2011-08-27 17:04:32 · 428 阅读 · 0 评论 -
正则表达式学习记录-反义
有时需要查找不属于某个能简单定义的字符类的字符。比如想查找除了数字以外,其它任意字符都行的情况,这时需要用到反义:表3.常用的反义代码代码/语法说明\W匹配任意不是字母,数字,下划线,汉字的字符\S匹配任意不是空白符原创 2011-08-27 17:06:02 · 277 阅读 · 0 评论 -
正则表达式学习记录-后向引用
使用小括号指定一个子表达式后,匹配这个子表达式的文本(也就是此分组捕获的内容)可以在表达式或其它程序中作进一步的处理。默认情况下,每个分组会自动拥有一个组号,规则是:从左向右,以分组的左括号为标志,第一个出现的分组的组号为1,第二个为2,以此类推。呃……其实,组号分配还不原创 2011-08-27 17:07:04 · 398 阅读 · 0 评论 -
正则表达式学习记录-零宽断言
接下来的四个用于查找在某些内容(但并不包括这些内容)之前或之后的东西,也就是说它们像\b,^,$那样用于指定一个位置,这个位置应该满足一定的条件(即断言),因此它们也被称为零宽断言。最好还是拿例子来说明吧:断言用来声明一个应该为真的事实。正则表达式中只有当断言为真时才会继续进原创 2011-08-27 17:07:49 · 320 阅读 · 0 评论 -
正则表达式学习记录-贪婪与懒惰
当正则表达式中包含能接受重复的限定符时,通常的行为是(在使整个表达式能得到匹配的前提下)匹配尽可能多的字符。以这个表达式为例:a.*b,它将会匹配最长的以a开始,以b结束的字符串。如果用它来搜索aabab的话,它会匹配整个字符串aabab。这被称为贪婪匹配。有时,我们更需要懒原创 2011-08-27 17:09:43 · 524 阅读 · 0 评论 -
更详细的信息
这里的介绍很简略,如果你需要更详细的信息,而又没有在电脑上安装MSDN Library,可以查看关于正则表达式语言元素的MSDN在线文档。原创 2011-08-27 17:14:42 · 350 阅读 · 0 评论 -
正则表达式学习记录-处理选项
上面介绍了几个选项如忽略大小写,处理多行等,这些选项能用来改变处理正则表达式的方式。下面是.Net中常用的正则表达式选项:表6.常用的处理选项名称说明IgnoreCase(忽略大小写)匹配时不区分大小写。Multilin原创 2011-08-27 17:10:22 · 295 阅读 · 0 评论 -
Validator
using System;using System.Text;using System.Text.RegularExpressions;using System.IO;namespace XXXX.Common{ /// /// 数据验证类 /// public class Validator { /// /原创 2012-06-15 14:23:28 · 520 阅读 · 0 评论