3.2 .NET正则-平衡组

正则表达式 1112 次浏览
1 概述 平衡组是微软在.NET中提出的一个概念,主要是结合几种正则语法规则,提供对配对出现的嵌套结构的匹配。.NET是目前对正则支持最完备、功能最强大的语言平台之一,而平衡组正是其强大功能的外在表现,也是比较实用的文本处理功能,目前只有.NET支持,相信后续其它语言会提供支持。 平衡组可以有狭义和广义两种定义: 狭义平衡组指.NET中定义的(?Close-OpenExpression)...

3.1 .NET正则-正则匹配模式

正则表达式 1119 次浏览
1.概述 匹配模式指的是一些可以改变正则表达式匹配行为的选项或修饰符。不同的语言支持的匹配模式不同,使用的方式也不同。 一般可分为全局和内联两种。下面主要介绍.NET中的匹配模式。 2.匹配模式 2.1 全局匹配模式和内联匹配模式概述 .NET中的全局匹配模式是通过RegexOptions枚举值指定的,可以按位“或”进行组合,全局匹配模式只能作用于整个正则表达式。全局匹配模式提供...

2.4 高级应用-贪婪与非贪婪

正则表达式 1158 次浏览
忽略优先和匹配优先或者叫做正则表达式匹配的贪婪与非贪婪模式。 标准量词修饰的子表达式,在可匹配可不匹配的情况下,总会先尝试进行匹配,称这种方式为匹配优先,或者贪婪模式。此前介绍的一些量词,“{m}”、“{m,n}”、“{m,}”、“?”、“*”和“ ”都是匹配优先的。 一些NFA正则引擎支持忽略优先量词,也就是在标准量词后加一个“?”,此时,在可匹配可不匹配的情况下,总会先忽略匹配,只有...

2.3 高级应用-环视

正则表达式 1072 次浏览
一、环视(Look Around)概念 环视只进行子表达式的匹配,匹配内容不计入最终的匹配结果,是零宽度的。 环视按照方向划分有顺序和逆序两种,按照是否匹配有肯定和否定两种,组合起来就有四种环视。环视相当于对所在位置加了一个附加条件。 语法: (?=Expression)逆序肯定环视,表示所在位置左侧能够匹配Expression (?!Expression)逆序否定环视,表示所在位置左...

2.2 高级应用-反向引用

正则表达式 1090 次浏览
一、反向引用概念 捕获组匹配的内容,可以在正则表达式的外部程序中进行引用,也可以在表达式中进行引用,表达式中引用的方式就是反向引用。 反向引用通常用来查找重复的子串,或是限定某一子串成对出现。 语法: \1,\2对序号为1和2的捕获组的反向引用 \kname对命名为name的捕获组的反向引用 举例: “(a|b)\1”在匹配“abaa”时,匹配成功,匹配到的结果是“aa”。“...

2.1 高级应用-捕获组

正则表达式 1022 次浏览
一、捕获组定义 1.捕获组 捕获组就是把正则表达式中子表达式匹配的内容,保存到内存中以数字编号或手动命名的组里,以供后面引用。 (Expression)普通捕获组,将子表达式Expression匹配的内容保存到以数字编号的组里,从1开始进行编号 (?nameExpression)命名捕获组,将子表达式Expression匹配的内容保存到以name命名的组里 普通捕获...

1.4 正则基础-NFA引擎匹配原理

正则表达式 945 次浏览
1.为什么要了解引擎匹配原理 一个个音符杂乱无章的组合在一起,弹奏出的或许就是噪音,同样的音符经过作曲家的手,就可以谱出非常动听的乐曲,一个演奏者同样可以照着乐谱奏出动听的乐曲,但他/她或许不知道该如何去改变音符的组合,使得乐曲更动听。 作为正则的使用者也一样,不懂正则引擎原理的情况下,同样可以写出满足需求的正则,但是不知道原理,却很难写出高效且没有隐患的正则。所以对于经常使用正则,或是有兴趣...

1.3 正则基础-量词、分支结构

正则表达式 922 次浏览
量词(Quantifier) 量词表示一个子表达式可以匹配的次数。量词可以用来修饰一个字符、字符组,或是用()括起来的子表达式。一些常用的量词被定义成独立的元字符。 {m}表达式匹配m次 如:“\d{3}”相当于“\d\d\d ” “(abc){2}”相当于“abcabc” {m,n}表达式匹配最少m次,最多n次 如: “\d{2,3}”可以匹配“12”或“321”等2到3位的数字...

1.2 正则基础-元字符

正则表达式 871 次浏览
1.[…] 字符组(Character Classes) 字符组可以匹配[ ]中包含的任意一个字符。虽然可以是任意一个,但只能是一个。 字符组支持由连字符“-”来表示一个范围。当“-”前后构成范围时,要求前面字符的码位小于后面字符的码位。 [^…] 排除型字符组。排除型字符组表示任意一个未列出的字符,同样只能是一个。排除型字符组同样支持由连字符“-”来表示一个范围。 如: [abc]表...