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 | 对于未获匹配的字符不复制 |