【发布时间】:2013-03-20 12:18:13
【问题描述】:
我需要在我的正则表达式中嵌入用户输入,因此需要对任何正则表达式特殊字符进行转义,而且我事先不知道字符串是什么。 p>
应该是这样的
string pattern = "\\d+ " + myEscapeFunction(userData);
我需要转义哪些特殊字符?或者有没有和Qt的QRegExp::escape等效的功能?
【问题讨论】:
-
我不确定是否有通用解决方案,因为它取决于表达标准。例如 (AFAIR) 一些引擎需要 ] 被转义,而有些则没有。您应该查看标准的转义字符串规则并进行一些字符串替换...
-
似乎是这样。现在想想,tr1::regex 允许在运行时设置表达式标准。我认为它默认为 ECMAscript。