Title here
Summary here
正则表达式(Regular Expressions, regex)根据不同的标准可分为以下几类。
类型 | 缩写 | 全称 |
---|---|---|
基本正则表达式 | BRE | BRE,Basic Regular Expressions |
扩展正则表达式 | ERE | ERE,Extended Regular Expressions |
Perl 正则表达式 | PCRE | Perl-Compatible Regular Expressions |
POSIX 正则表达式 | BRE & ERE | BRE & ERE |
BRE 和 ERE 是 POSIX 标准中的两种正则表达式, BRE 较为基础,需要对某些元字符转义,ERE 是 BRE 的扩展,提供了更多的元字符和功能。 PCRE 是一种功能更强大、语法更灵活的正则表达式类型, 广泛用于现代编程语言如:Python、Ruby、Javascript。
支持 BRE 和 ERE,默认使用 BRE。
这种模式需要对元字符进行转义,例如:
)
:需要使用 \)
转义。|
:需要使用 \|
转义。使用 -E
或 -r
选项启用 ERE,不需要转义元字符。
默认使用 ERE 模式。
有特殊含意的字符,需要转义。
虽然 /
不是正则表达式特殊字符,但在 sed
和 gawk
中也要转义。
匹配行的首部位置。
如果 ^
不是出现在开头,则和普通字符一样,无须转义。
匹配行的尾部位置。
如果 $
不是出现在结尾,则和普通字符一样,无须转义。
匹配除换行符外的任意单个字符。
Character Class,可匹配组内任一字符。
排除组内字符。
匹配 c
- e
之间的字符。
匹配 c
- e
或 0
- 9
之间的字符。
匹配 *
号前面的字符 0 次或多次。
以上例子都是可以成功匹配的。
匹配 ?
号前面的字符 0 次或 1 次。
上面的例子都是可以匹配的,可以用 ^ 限制。
上面只能匹配 at 或 cat。
匹配 +
号前面的字符 1 次或多次。
指定 {}
前面字符的匹配次数。
表示或逻辑。
分组可视为一个整体。