基本正则表达式(Basic Regular Expression,简称BRE)是一种较为原始或简化版的正则表达式语法,它遵循POSIX(Portable Operating System Interface of UNIX)标准,被许多类Unix系统及其工具广泛支持。BRE主要用于文本模式匹配、搜索和替换操作。
在BRE中,一些元字符(即具有特殊含义的字符)如果不希望它们具有特殊含义,通常需要进行反斜杠 \
转义。例如,在BRE中,.
表示匹配任意单个字符,\.
才表示匹配实际的句点字符 .
。
以下是一些BRE中常见的构造:
.
: 匹配任意单个字符(除了换行符,除非启用特殊模式)。[ ]
: 字符集,匹配括号内的任何一个字符。[^ ]
: 负值字符集,匹配不在括号内的任何一个字符。*
: 重复前面的元素零次或多次,但在BRE中需要写作\*
以获得特殊含义。?
: 重复前面的元素零次或一次,在BRE中同样需要\?
转义。\\( \\)
: 括号用于分组和创建子表达式,但不同于ERE(扩展正则表达式),在BRE中,分组不支持后向引用,即不能通过\n
形式引用前面的组。
相比于ERE和其他更现代的正则表达式实现(如Perl兼容正则表达式PCRE),BRE提供较少的功能和灵活性。例如,在ERE中,量词(如+
和{m,n}
)可以直接使用,而在BRE中则不行。为了在支持BRE的工具(如默认情况下的sed)中使用ERE风格的正则表达式,可能需要指定额外的命令行选项(如sed的-E
选项)。