正则表达式基本语法
介绍:
正则表达式在文字处理领域被广泛运用。学习正则表达式,最重要的一点就是:学习的先后顺序,从简单概念到复杂概念。
基本语法:
DEELX 支持 Perl 兼容的正则表达式基本语法。基本语法规则在各个不同的正则引擎中表现基本一致。
1.普通字符
字母、数字、汉字、下划线,以及没有被定义特殊意义的标点符号,都是 "普通字符"。
2.简单转义字符
一些不便书写的字符,比如换行符,制表符等,使用 \n,\t 来表示。另外有一些标点符号在正则表达式中,被定义了特殊的意义,因此需要在前面加 "\" 进行转义后,匹配该字符本身。
转义字符 \Q...\E
使用 \Q 开始,\E 结束,可使中间的标点符号失去特殊意义,将中间的字符作为普通字符。
使用 \U 开始,\E 结束,除了具有 \Q...\E 相同的功能外,还将中间的小写字母转换成大写。在大小写敏感模式下,只能与大写文本匹配。
使用 \L 开始,\E 结束,除了具有 \Q...\E 相同的功能外,还将中间的大写字母转换成小写。在大小写敏感模式下,只能与小写文本匹配。
注:\Q...\E 适合用于:表达式中需要比较长的普通文本,而其中包含了特殊符号。
如:
\Q(a+b)*3\E 可匹配(a+b)*3 <=> \(a\+\b)\*3
3.字符集合
可以匹配 "多个字符" 其中任意一个字符的正则表达式。虽然是 "多个字符",但每次只能匹配其中一个。
自定义字符集合:
用中括号 [ ] 包含多个字符,可以匹配所包含的字符中的任意一个。同样,每次只能匹配其中一个。
用中括号 [^ ] 包含多个字符,构成否定格式,可以匹配所包含的字符之外的任意一个字符。
4.匹配次数限定符
使被修饰的表达式可多次重复匹配的修饰符。
在限定符之后的表达式能够匹配成功的情况下,不定次数的限定符总是尽可能的多匹配。如果之后的表达式匹配失败,限定符可适当“让出”能够匹配的字符,以使整个表达式匹配成功。这种模式就叫“贪婪模式”。
5.字符边界
本身不匹配任何字符,只对字符边界和字符间缝隙附加条件的表达式。
^ 当前位置必须是文本开始位置
$ 当前位置必须是文本结束位置
\b 当前位置的左右两侧,只能有一侧是字母数字或下划线
6.选择表达式
使用竖线 "|" 分隔多段表达式,整个表达式可匹配其中任意一段。
说明:
正则引擎总是从左向右进行尝试匹配,如果每一段表达式都匹配失败,则整个表达式匹配失败。
7.分组
用括号 ( ) 将其他表达式包含,可以使被包含的表达式组成一个整体,在被修饰匹配次数时,可作为整体被修饰。
另外,用括号包含的表达式,所匹配到的内容将单独作记录,匹配过程中或结束后可以被获取。
说明
每一对括号会分配一个编号,使用 () 的捕获根据左括号的顺序从 1 开始自动编号。捕获元素编号为零的第一个捕获是由整个正则表达式模式匹配的文本。