由于考虑到兼容性的原因,在类unix系统中,简单的正则表达式仍广泛使用。大多数支持正则表达式的命令,如grep和sed等默认使用简单正则表达式,但同时支持扩展正则表达式,需通过命令行参数指定。在posix兼容系统上,简单正则表达式已经废弃,因此新的命令或工具请不要使用此语法。
当使用简单正则表达式时,除了元字符,大多数字符将按照字面意思处理,它们只匹配它们自己,例如‘a’只匹配‘a’,‘bc’只匹配‘bc’。
操作符 | 效果 |
---|---|
. | 点操作符匹配任何单一字符 |
[ ] | 匹配字符列表或字符范围 |
[^ ] | 匹配不在此范围或列表中的字符 |
^ | 匹配行开始处 (or any line, when applied in multiline mode) |
$ | 匹配行结束处 (or any line, when applied in multiline mode) |
( ) | 括号定义了一个标记,匹配的部分在此后返回 |
\n |
其中n是从1到9的数字;内容相匹配的第n个标记子表达式匹配。在扩展的正则表达式语法中这种不规则的结构并没有被采纳。
|
* | *跟在单字符表达式后表示匹配0次或多次,如 “ab*c”匹配”ac”, “abc”, “abbbc”等。 “[xyz]*” 匹配””, “x”, “y”, “zx”, “zyx”等.
|
示例
- “^[hc]at” 在行开始处匹配hat或cat
- “[hc]at$” 在行结束处匹配hat或cat
采用的工具
采用简单正则表达式语法的工具有:
- Grep
- sed