我正在努力创建一个QRegExp来匹配字符串(??)(即:一个开头的括号,两个问号和一个结尾的括号),这应该是一个单独的单词,因此在此之前和之后可以是空格,标签,换行符),我想出的最接近的是QRegExp("\\b\\(\\?\\?\\)\\b");,但即使它与之不匹配,您也可以帮助我吗?

谢谢
F。

最佳答案

我不知道QRegexp,但是\b仅在字母数字字符和非字母数字字符之间匹配,因此您的正则表达式仅在直接由数字包围的情况下才匹配(??)(例如abc(??)123)。

因此,您需要另一种方法。希望QRegexp支持环视,您可以使用

QRegExp("(?<=\\s|^)\\(\\?\\?\\)(?=\\s|$)");


因此,正则表达式会检查(??)之前/之后是否存在空格或字符串的开头/结尾。

如果这不起作用,则必须显式地匹配空白:

QRegExp("(?:\\s|^)\\(\\?\\?\\)(?:\\s|$)");

09-29 19:26