我想为两种语言声明相同的正则表达式模式。对于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 转义符号而只是忽略\
-s 但 C++ 尝试过但很糟糕?
附:我记得 PHP 的工作方式和 TCL 一样。
这正是 C++ 和 PHP 的不同之处;在 PHP 中,反斜杠后面的字符与一小组特殊字符匹配(我相信"rnvtx"
)。如果匹配失败,它将继续而不改变含义。
然而,C++ 期望字符位于那个小集合中(顺便说一句,我认为该集合更大),但如果匹配失败,您将看到一个错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)