正则表达式的流派与元字符
不同的正则表达式工具,背后的引擎可能是不同的,相同的正则表达式可能在不同的工具中会获得不同的结果(不同的正则表达式也可能获得相同的结果),所以要注意这种语义的差异,如:
1 | # perl regex pattern result |
正则表达式的更有意义的操作:检查某个正表达式是否能够匹配某个字符串;查找和替换,字符串的更新
程序设计语言处理正则表达式的方式
集成式 (integrated)
正则表达式是内嵌在语言中的,属于语言的低级语法,如 Perl, 其他两种,不是内建的操作符来处理,由普通的函数接受普通的字符串,将他们作为正则表达式进行处理
程序式 (procedural)
函数式
面向对象式 (object-oriented)
通过构造函数及方法,如 Java 通过构造 Pattern、Matcher 对象来实现,当然也提供了函数式的静态方法来使用正则表达式
Unicode 中的行终结符
表示 | Unicode code point | 描述 |
---|---|---|
LF | U+000A | ASCII 换行符 |
VT | U+000B | ASCII 垂直制表符 |
FF | U+000C | ASCII 进纸符 |
CR | U+000D | ASCII 回车 |
CR/LF | U+000D U+000A | ASCII 回车/换行 |
NEL | U+0085 | Unicode 换行 |
LS | U+2028 | Unicode 行分隔符 |
PS | U+2029 | Unicode 段分隔符 |
常见模式修饰符字母
字母 | 模式 |
---|---|
i | 不区分大小写的匹配模式 |
x | 宽松排列和注释模式 |
s | 点号通配模式(单行模式) |
m | 增强的行锚点模式(多行模式) |