当只有一个bckslash时如何使用QRegExp?

时间:2014-07-02 19:09:10

标签: regex qt backslash qregexp

我想使用QRegExp来检测像正则表达式一样的Postgres。对于QRegExp,doc说"要在正则表达式中包含\,请输入两次,即\"

示例:美元金额:

\$[0-9]+.[0-9][0-9]

要使用QRegExp成功匹配,它应该有两个\\,如:

\\$[0-9]+.[0-9][0-9]

这是一个例子,但有没有办法确保它始终匹配正确?我在考虑用\替换所有\\

由于

1 个答案:

答案 0 :(得分:1)

使用新改进的QRegularExpression而不是QRegExp。在(几乎)各方面都比旧的好得多。

关于您的问题:您可以使用QRegularExpression :: escape()来执行您所谈到的替换。但是,这对整个模式字符串没有用,因为它取代了所有保留字符。但是,它可用于组合模式的子字符串。

关于你的例子......你只需要手动处理这个问题。您可以创建有效的模式。

请注意,还有其他C / C ++转义。这意味着要创建两个反斜杠" \\"在C / C ++中,你需要其中4个" \\\\"。