我们可以用被忽略的空格/换行符来格式化 std::regex 字符串——只是为了更好地阅读吗?是否有可用的选项,如 Python VERBOSE )?
没有冗长的:
charref = re.compile("&#(0[0-7]+"
"|[0-9]+"
"|x[0-9a-fA-F]+);")
冗长的:
charref = re.compile(r"""
&[#] # Start of a numeric entity reference
(
0[0-7]+ # Octal form
| [0-9]+ # Decimal form
| x[0-9a-fA-F]+ # Hexadecimal form
)
; # Trailing semicolon
""", re.VERBOSE)
最佳答案
简单地将字符串拆分为多个文字并使用 C++ 注释,如下所示:
std::regex rgx(
"&[#]" // Start of a numeric entity reference
"("
"0[0-7]+" // Octal form
"|[0-9]+" // Decimal form
"|x[0-9a-fA-F]+" // Hexadecimal form
")"
";" // Trailing semicolon
);
然后它们将组合成 "&[#](0[0-7]+|[0-9]+|x[0-9a-fA-F]+);"
由编译器。这也将允许您向不会被忽略的正则表达式添加空格。但是,额外的引号会使编写起来有点费力。
关于c++ - std::regex 忽略正则表达式命令中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37750251/