我希望为两种语言声明相同的正则表达式模式。对于TCL,我会这样做:
set pattern "\d\s\S"
但对于C++,我必须使用相同的模式进行操作。
boost::regex pattern("\\d\\s\\S");
否则,C ++编译器将告诉我们以下内容:
warning C4129: 'd' : unrecognized character escape sequence
为什么TCL不尝试寻找\d \s \S转义符,而只是忽略\
,但C++却尝试并失败了?
P.S. 我记得PHP的工作方式与TCL相似。
C++,C,Java
需要你双倍转义。而其他一些语言如 -Perl,PHP
不需要。 - Rohit Jainset a "\dumb"
时,它会被解释为dumb
。这个原因对我来说已经足够了,我也能理解为什么在C++中不是这样的。 - Narek"\dumb"
和"\thumb"
视为相同,因为他们认为否则会令人困惑。 - Bo Persson