regex flag位于regex_constants内,原则上他们总是可以被传入regex构造函数或regex的各个函数中,作为可有可无的最后一个实参。例子如下:
1 |
|
下表是flag及其含义:
| Regex_constants | 意义 |
|---|---|
| ECMAScript | 使用ecmascript文法,默认 |
| basic | 使用posix的basic regular expression 文法 |
| extended | 使用posix的extended regular expression文法 |
| awk | 使用unix工具awk的文法 |
| grep | 使用unix工具grep的文法 |
| egrep | 使用unix工具egrep的文法 |
| icase | 忽略大小写 |
| nosubs | 不将子序列存储于匹配结果内 |
| optimize | 优化matching速度,然后才考虑regex的创建速度 |
| collate | 形式[a-b]的字符区间会受locale影响 |
| match_not_null | 不匹配空序列 |
| match_not_bol | 第一位置不匹配 |
| match_not_eol | 最末字符不匹配 |
| match_not_bow | 第一字符不匹配 |
| match_not_eow | 最末字符不匹配 |
| match_continuous | 只试图匹配“从第一字符开始”的子序列 |
| match_any | 如果多于一个匹配,任何匹配都可以接受 |
| match_prev_avail | 第一个字符的前一位置是个有效位置 |
| format_default | 使用默认的ECMAScript替换语法 |
| format_sed | 使用Unix工具sed的替换语法 |
| format_first_only | 只替换第一个匹配 |
| format_no_copy | 对于未获匹配的字符不复制 |