|
|
1
2
与许多语言一样,C++字符串文字中的反斜杠是由C++编译器解释的,因此当程序实际运行时,它们已经被C++语言定义的任何替换或编译器可能接受的任何其他转义序列所替换。
C++语言只定义了少数转义序列,并且
也许这会让这一点更加清晰:
如果我们编译并运行它,我们将看到:
概括一下,字符串文字
(Gcc也很善意地警告你
知道这一点也很有用。GCC将任何未知的转义序列替换为反斜杠后面的字符,以便
好的,让我们转到正则表达式。正则表达式是一个“括号表达式”,通常称为字符类,它是一组字符。如果字符类在集合中,则它将与一个字符完全匹配。正则表达式的精确语义各不相同,但您使用的特定风格(带有GCC扩展的C++默认regex语法)确实允许使用反斜杠转义序列,该序列表示要包含在字符类中的字符集。但在字符类中,大多数正则表达式运算符不被视为特殊字符。圆括号和竖线只代表它们自己。除了反斜杠之外,唯一特殊的字符是破折号(
因此,以下是作为C++文字字符串的正则表达式:
正如我们所看到的,其意图实际上是:
那么,这对正则表达式库意味着什么呢?简单:它意味着一个字符类,其成员为:
当然,由于字符集包括所有非数字--
那个使用
现在,我们可以尝试使用它:
它编译时没有任何警告,并产生预期的输出:
|
|
|
2
1
因此,你可以这样写,而且效果很好。
|
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |