0

以下のような文字列があります。

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

\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」にするだけで問題ありません。

編集

次に、指定された正規表現を使用して入力を分割します。これにより、目的の結果に結合できる 2 つの文字列が生成されます。

于 2013-07-16T09:16:04.787 に答える