# std::regex 怎么用?测试一下。 + ### **元字符(Metacharacters)** | 符号 | 说明 | | ------- | ------------------------------------ | | `.` | 匹配任意单个字符(除换行符外)。 | | `^` | 匹配字符串的开头。 | | `$` | 匹配字符串的结尾。 | | `*` | 匹配前一个元素0次或多次(贪婪)。 | | `+` | 匹配前一个元素1次或多次(贪婪)。 | | `?` | 匹配前一个元素0次或1次(可选)。 | | ` | ` | | `()` | 分组,用于捕获子表达式。 | | `[]` | 字符集,匹配方括号中的任意一个字符。 | | `{n}` | 匹配前一个元素刚好n次。 | | `{n,}` | 匹配前一个元素至少n次。 | | `{n,m}` | 匹配前一个元素n到m次(包含n和m)。 | ------ ### **字符集(Character Classes)** | 符号 | 说明 | | ----------- | ------------------------------------------- | | `[abc]` | 匹配`a`、`b`或`c`中的任意一个字符。 | | `[^abc]` | 匹配不在`a`、`b`或`c`中的字符。 | | `[a-z]` | 匹配从`a`到`z`范围内的任意字符。 | | `[0-9]` | 匹配从`0`到`9`范围内的任意数字。 | | `[:alnum:]` | 匹配任意字母或数字(等价于`[a-zA-Z0-9]`)。 | | `[:alpha:]` | 匹配任意字母(等价于`[a-zA-Z]`)。 | | `[:digit:]` | 匹配任意数字(等价于`[0-9]`)。 | | `[:space:]` | 匹配空白字符,包括空格、制表符、换行符等。 | | `[:punct:]` | 匹配标点符号。 | | `[:lower:]` | 匹配小写字母。 | | `[:upper:]` | 匹配大写字母。 | ------ ### **转义字符(Escape Sequences)** | 符号 | 说明 | | ---- | ----------------------------------------------------------- | | `\\` | 匹配反斜杠本身。 | | `\d` | 匹配数字字符(等价于`[0-9]`)。 | | `\D` | 匹配非数字字符(等价于`[^0-9]`)。 | | `\w` | 匹配字母、数字或下划线(等价于`[a-zA-Z0-9_]`)。 | | `\W` | 匹配非字母、非数字和非下划线字符(等价于`[^a-zA-Z0-9_]`)。 | | `\s` | 匹配空白字符(等价于`[:space:]`)。 | | `\S` | 匹配非空白字符。 | ------ ### **断言(Assertions)** | 符号 | 说明 | | ---------- | ------------------------------------------- | | `(?=...)` | 正向先行断言,确保后面可以匹配表达式`...`。 | | `(?!...)` | 负向先行断言,确保后面不能匹配表达式`...`。 | | `(?<=...)` | 正向后行断言,确保前面可以匹配表达式`...`。 | | `(?