Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想使用 QRegExp 来检测 Postgres 之类的正则表达式。对于 QRegExp,文档说“要在正则表达式中包含 \,请输入两次,即 \”
示例:美元金额:
\$[0-9]+.[0-9][0-9]
要使用 QRegExp 成功匹配它,它应该有两个\\:
\\
\\$[0-9]+.[0-9][0-9]
这是一个示例,但有没有办法确保它始终正确匹配?我在想\用\\?
\
谢谢
使用新改进的 QRegularExpression 代替 QRegExp。它在(几乎)各个方面都比旧的要好得多。
关于你的问题:你可以使用 QRegularExpression::escape() 来做你谈到的替换。然而,这对整个模式字符串没有用,因为它替换了所有保留字符。但是,它对于可用于组合模式的子字符串很有用。
关于您的示例...您只需要手动处理即可。创建有效模式由您决定。
请注意,还会发生额外的 C/C++ 转义。这意味着要在 C/C++ 中创建两个反斜杠“\\”,您实际上需要其中 4 个“\\\\”。