0

我有一个如下字符串:

std::string myString = "This is string\r\nIKO\r\n. I don't exp\r\nO091\r\nect some characters.";

现在我想摆脱 include 之间的\r\n字符\r\n。所以字符串必须如下所示:

std::string myString = "This is string. I don't expect some characters.";

我不确定,会有多少\r\n's人出现。而且我不知道中间有什么字符\r\n。我怎么能regex在这个字符串中使用?

4

2 回答 2

2

就个人而言,我会用find. 我看不出使用正则表达式对这项任务有多大帮助。这些方面的东西:

string final;
size_t cur = 0;
for (;;) {
  size_t pos = myString.find("\r\n", cur);
  final.append(myString, cur, pos - cur);
  if (pos == string::npos) {
    break;
  }
  pos = myString.find("\r\n", pos + 2);
  if (pos == string::npos) {
    // Odd number of delimiters; handle as needed.
    break;
  }
  cur = pos + 2;
}
于 2013-07-16T16:49:27.100 回答
0

在大多数正则表达式库中,正则表达式默认是“贪婪的”。

只需让你的正则表达式说 "\r\n.*\r\n" 就可以了。

编辑

然后使用给定的正则表达式拆分您的输入。这应该会产生两个字符串,您可以将它们组合成所需的结果。

于 2013-07-16T09:16:04.787 回答