C++正则表达式中的特殊字符

C++ special characters in a regular expression

本文关键字:特殊字符 正则表达式 C++      更新时间:2023-10-16

我必须解析一个可以包含特殊符号(如 \s 和 \d)的正则表达式。问题是,我在解析表达式时无法区分 \,我的意思是 '\s' == 's',因此我无法区分特殊字符和基本字符。我该如何解决这个问题?

自 C++11 以来的原始字符串文字可以帮助您提高可读性:

"a\sb" // matches: a[whitespace]b
"a\\sb" // matches: asb

成为:

R"(asb)" // matches: a[whitespace]b
R"(a\sb)" // matches: asb

您混淆了用户输入和字符文字。通过将所有输入字符与字符文本''进行比较来捕获用户输入