C军

不玩博客了!

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  496 随笔 :: 0 文章 :: 634 评论 :: 571万 阅读

随笔分类 -  其他:正则表达式

正则表达式学习笔记
摘要:常识性优化 1、避免重新编译 编译和定义正则表达式的次数应尽可能的少。 2、使用非捕获型括号 如果不需要引用括号内的文本,请使用非捕获型括号(?:...)。这样不但能节省捕获的时间,而且会减少回溯使用的状态的数量,从两方面提高速度。而且能够进一步的优化,例如消除务必要括号。 3、不要滥用括号 在需要的时候使用括号,在其他时候使用括号会阻止某些优化措施。除非你需要知道.*匹配的最后一个字符,否则请不要使用(.*)。 4、不要滥用字符组 例如 ^.*[:] 这样会付出处理字符组的代价,而实际上这个式子并需不要用到字符组提供的多字符匹配功能,我认为,当一个字符是元字符时例如 . 或 ... 阅读全文
posted @ 2013-04-27 19:19 逆心 阅读(1501) 评论(0) 推荐(0) 编辑

摘要:其中如果包含的字符串中包含双引号,那么就两个双引号表示,而不是反斜杠加上双引号(\”),也不是斜杠加上双引号(/”) 正则表达式获取CSS里面的图片的例子,里面有URL里面的图片地址有双引号,要注意用两个双引号""表示 static void Main(string[] args) { Regex reg = new Regex(@"url\((['""]?)(.+[^'""])\1\)"); //注意里面的引号 要用双引号表示,而不是用反斜杠 Console.WriteLine(reg.Match 阅读全文
posted @ 2013-04-25 18:59 逆心 阅读(68110) 评论(0) 推荐(2) 编辑

摘要:小括号的作用分类 代码/语法 说明捕获 (exp) 匹配exp,并捕获文本到自动命名的组里 (?<name>exp) 匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp) (?:exp) 匹配exp,不捕获匹配的文本,也不给此分组分配组号零宽断言 (?=exp) 匹配exp前面的位置 (?<=exp) 匹配exp后面的位置 (?!exp) 匹配后面跟的不是exp的位置 (?<!exp) 匹配前面不是exp的... 阅读全文
posted @ 2013-04-25 18:17 逆心 阅读(8969) 评论(1) 推荐(4) 编辑

摘要:Regex在匹配的时候,常常会返回一个Match类的对象,今天就来看看怎么玩这个对象。一、属性 Captures 按从里到外、从左到右的顺序获取由捕获组匹配的所有捕获的集合(如果正则表达式用 RegexOptions..::.RightToLeft 选项修改了,则顺序为按从里到外、 从右到左)。该集合可以有零个或更多的项。 Empty 获取空组。所有失败的匹配都返回此空匹配。 Groups 获取由正则表达式匹配的组的集合。 Index 原始字符串中发现捕获的子字符串的第一个字符的位置。 Length 捕获的子字符串的长度。 Success ... 阅读全文
posted @ 2013-04-24 15:36 逆心 阅读(736) 评论(0) 推荐(0) 编辑

摘要:在创建Regex类的实例时,构造函数的重载中有一个要求传入RegexOptions的一个枚举值,我相信这个枚举一定非常有用,否则不会要求在构造函数中传入。今天就来看一看这个枚举的作用。 我们干脆把代码敲出来看一看: // 摘要: // 提供用于设置正则表达式选项的枚举值。 [Flags] public enum RegexOptions { // 摘要: // 指定不设置选项。 None = 0, // // 摘要: // 指定不区分大小写的匹配。 ... 阅读全文
posted @ 2013-04-23 09:20 逆心 阅读(7855) 评论(0) 推荐(0) 编辑

摘要:一、属性 CacheSize 获取或设置已编译的正则表达式的当前静态缓存中的最大项数。 默认是15个,最近使用的15个会存在缓存中,避免重新创建。当有第16个进来会替换掉第 1个。保持15个。 Options 返回传入 Regex 构造函数的选项。 RightToLeft 获取一个值,该值指示正则表达式是否从右向左进行搜索。二、方法 CompileToAssembly 已重载。 编译正则表达式,并将其保存到单个程序集的磁盘中。 Escape 通过替换为转义码来转义最小的元字符集(\、*、+、?、|、{、[、(、)、^、$、.、# 和空白)。 ... 阅读全文
posted @ 2013-04-23 09:16 逆心 阅读(1044) 评论(0) 推荐(0) 编辑

摘要:正则表达式括号的作用1、限制多选项的范围 (Fri|1)st 这样写会匹配Frist或1st 如果去掉,则 Fri|1st就是匹配 Fri或1st2、将若干个字符进行组合,受量词的同时作用。例如 th+ 表示匹配 th thh thhh(h无数次),如果是(th)+,则匹配的是th thth tht 阅读全文
posted @ 2013-04-22 21:22 逆心 阅读(18422) 评论(2) 推荐(3) 编辑

点击右上角即可分享
微信分享提示