摘要: 常识性优化 1、避免重新编译 编译和定义正则表达式的次数应尽可能的少。 2、使用非捕获型括号 如果不需要引用括号内的文本,请使用非捕获型括号(?:...)。这样不但能节省捕获的时间,而且会减少回溯使用的状态的数量,从两方面提高速度。而且能够进一步的优化,例如消除务必要括号。 3、不要滥用括号 在需要 阅读全文
posted @ 2015-06-01 18:13 Dynamics365峰 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 其中如果包含的字符串中包含双引号,那么就两个双引号表示,而不是反斜杠加上双引号(\”),也不是斜杠加上双引号(/”) 正则表达式获取CSS里面的图片的例子,里面有URL里面的图片地址有双引号,要注意用两个双引号""表示 static void Main(string[] args) { Regex 阅读全文
posted @ 2015-06-01 18:12 Dynamics365峰 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 小括号的作用 分类 代码/语法 说明 捕获 (exp) 匹配exp,并捕获文本到自动命名的组里 (?<name>exp) 匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp) (?:exp) 匹配exp,不捕获匹配的文本,也不给此分组分配组号 零宽断言 (?=exp) 匹 阅读全文
posted @ 2015-06-01 18:10 Dynamics365峰 阅读(314) 评论(0) 推荐(0) 编辑
摘要: Regex在匹配的时候,常常会返回一个Match类的对象,今天就来看看怎么玩这个对象。 一、属性 Captures 按从里到外、从左到右的顺序获取由捕获组匹配的所有捕获的集合(如果正则表达式用 RegexOptions..::.RightToLeft 选项修改了,则顺序为按从里到外、 从右到左)。该 阅读全文
posted @ 2015-06-01 18:03 Dynamics365峰 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 在创建Regex类的实例时,构造函数的重载中有一个要求传入RegexOptions的一个枚举值,我相信这个枚举一定非常有用,否则不会要求在构造函数中传入。今天就来看一看这个枚举的作用。 我们干脆把代码敲出来看一看: // 摘要: // 提供用于设置正则表达式选项的枚举值。 [Flags] publi 阅读全文
posted @ 2015-06-01 18:02 Dynamics365峰 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 一、属性 CacheSize 获取或设置已编译的正则表达式的当前静态缓存中的最大项数。 默认是15个,最近使用的15个会存在缓存中,避免重新创建。当有第16个进来会替换掉第 1个。保持15个。 Options 返回传入 Regex 构造函数的选项。 RightToLeft 获取一个值,该值指示正则表 阅读全文
posted @ 2015-06-01 18:01 Dynamics365峰 阅读(352) 评论(0) 推荐(0) 编辑
摘要: 正则表达式括号的作用 1、限制多选项的范围 (Fri|1)st 这样写会匹配Frist或1st 如果去掉,则 Fri|1st就是匹配 Fri或1st 2、将若干个字符进行组合,受量词的同时作用。例如 th+ 表示匹配 th thh thhh(h无数次),如果是(th)+,则匹配的是th thth t 阅读全文
posted @ 2015-06-01 17:59 Dynamics365峰 阅读(218) 评论(0) 推荐(0) 编辑