将QRegularExpression应用于句子时,请避免使用\ r

时间:2015-12-28 19:00:51

标签: c++ regex qt qregularexpression

我提取了以下句子:

  

非常重要的一点。它应该在我们的下一次会议上讨论。

来自以下一行:

  

ID:1 x:1202 y:2453 w:242 h:459 wn:13 ln:12 c:非常重要。它应该在我们的下一次会议上讨论。

使用此QRegularExpression:

 regularExpression.setPattern("(?<=\\s)c:\\s?(.*)$");

然而,输出是:

  

非常重要的一点。它应该在我们的下一次会议上讨论。\ r

\ r \ n的存在是很正常的,因为我使用的行是用文本文件(Windows 8.1操作系统)编写的。

你知道如何在结果输出中没有“\ r”的情况下提取句子吗?我真的不知道。

非常感谢你的帮助

1 个答案:

答案 0 :(得分:2)

您可以使用 negated character class [^\r\n]来实现这一目标:

regularExpression.setPattern("(?<=\\s)c:\\s?([^\r\n]*)");
                                             ^^^^^^^^

[^\r\n]*子模式匹配除\r\n以外的零个或多个字符。