0

我想使用 QRegExp 来检测 Postgres 之类的正则表达式。对于 QRegExp,文档说“要在正则表达式中包含 \,请输入两次,即 \”

示例:美元金额:

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

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

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

这是一个示例,但有没有办法确保它始终正确匹配?我在想\\\?

谢谢

4

1 回答 1

1

使用新改进的 QRegularExpression 代替 QRegExp。它在(几乎)各个方面都比旧的要好得多。

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

关于您的示例...您只需要手动处理即可。创建有效模式由您决定。

请注意,还会发生额外的 C/C++ 转义。这意味着要在 C/C++ 中创建两个反斜杠“\\”,您实际上需要其中 4 个“\\\\”。

于 2014-07-02T20:49:53.523 回答