有一组特殊的字符序列,用来匹配具体的字符类型或字符环境。如b匹配字符边界,foodb匹配"food"、"zoofood",而和"foodies"不匹配。
特殊字符序列
| 字符 | 描述 |
|---|---|
| A | 只匹配字符串的开始 |
| b | 匹配一个单词边界 |
| B | 匹配一个单词的非边界 |
| d | 匹配任意十进制数字字符,等价于r'[0-9]' |
| D | 匹配任意非十进制数字字符,等价于r'[^0-9]' |
| s | 匹配任意空格字符(空格符、tab制表符、换行符、回车、换页符、垂直线符号) |
| S | 匹配任意非空格字符 |
| w | 匹配任意字母数字字符 |
| W | 匹配任意非字母数字字符 |
| Z | 仅匹配字符串的尾部 |
| 匹配反斜线字符 |
有一套声明(assertion)对具体事件进行声明。
正则表达式声明
| 声明 | 描述 |
|---|---|
| ( iLmsux) | 匹配空字符串,iLmsux字符对应下表的正则表达式修饰符。 |
| ( :...) | 匹配圆括号内定义的表达式,但不填充字符组表。 |
| ( P<name>) | 匹配圆括号内定义的表达式,但匹配的表达式还可用作name标识的符号组。 |
| ( P=name) | 匹配所有与前面命名的字符组相匹配的文本。 |
| ( #...) | 引入注释,忽略圆括号内的内容。 |
| ( =...) | 如果所提供的文本与下一个正则表达式元素匹配,这之间没有多余的文本就匹配。这允许在一个表达式中进行超前操作,而不影响正则表达式其余部分的分析。如"Martin"其后紧跟"Brown",则"Martin( =Brown)"就只与"Martin"匹配。 |
| ( !...) | 仅当指定表达式与下一个正则表达式元素不匹配时匹配,是( =...)的反操作。 |
| ( <=...) | 如果字符串当前位置的前缀字符串是给定文本,就匹配,整个表达式就在当前位置终止。如( <=abc)def表达式与"abcdef"匹配。这种匹配是对前缀字符数量的精确匹配。 |
| ( <!...) | 如果字符串当前位置的前缀字符串不是给定的正文,就匹配,是( <=...)的反操作。 |










