1

我提取了以下句子:

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

从以下行:

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

使用这个 QRegularExpression:

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

但是,输出是:

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

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

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

非常感谢你的帮助

4

1 回答 1

2

您可以使用否定字符类 [^\r\n]来实现:

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

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

于 2015-12-28T19:03:55.610 回答