正则表达式(Regular Expressions)
Completion requirements
非 POSIX 基本正则表达式(Non-POSIX Basic Regular Expressions, BRE)
除了 POSIX 规定的基本正则表达式(BRE)之外,一些工具还支持额外的非 POSIX 字符类和语法扩展。这些扩展主要用于增强正则表达式的适用性,特别是在编程语言中对标识符的处理。
新增的字符类
[:word:]
- 该字符类通常被定义为
[:alnum:]
(字母 + 数字)再加上_
(下划线) - 主要用于匹配编程语言中的标识符
- 例如:
[[:word:]]+
可匹配hello
,var_name
,Python3
- 该字符类通常被定义为
常见运算符
运算符 | 作用 |
---|---|
. |
匹配任意单个字符 |
[ ] |
字符类,匹配方括号内的任意字符 |
[^ ] |
反向字符类,匹配不在方括号内的字符 |
* |
匹配前一个字符 0 次或多次 |
^ |
匹配行首 |
$ |
匹配行尾 |
Vim 编辑器的额外扩展
在 Vim 中,正则表达式还区分了单词(word)和单词开头字符(word-head):
\w
匹配单词字符(类似[:word:]
)\h
匹配单词开头字符(仅匹配字母和_
,不能匹配数字)
在许多编程语言中,变量名必须以字母或 _
开头,不能以数字开头。因此 \h
用于匹配合法的标识符开头字符。
适用工具
支持非 POSIX 扩展的工具和编程语言包括:
- Vim
- 某些增强版
grep
、sed
- 某些编程语言的正则引擎
总结
- 非 POSIX 主要新增了
[:word:]
,用于匹配 字母 + 数字 +_
,适用于编程语言中的变量名 - Vim 进一步扩展了
\w
(单词字符)和\h
(标识符开头字符) - 这些扩展并不属于 POSIX 标准,但在一些工具中提供了额外的功能
这些扩展增强了正则表达式的表达能力,特别是在处理编程语言代码时更加方便。
Last modified: Thursday, 30 January 2025, 2:18 AM