2017-06-22 15 views
0

が発生し、この長い正規表現式がエラー

std::regex line("[\s]+\+?[0-9]+.[0-9]+[\s]+\+?[0-9]+.[0-9]+[\s]+\+?[0-9]+.[0-9]+[\s]"); 

行はこの

Exception thrown at 0x00007FFE39E69E08 in DosyaOkuHizli.exe: Microsoft C++ exception: std::regex_error at memory location 0x000000F751EFEAB0. 
Exception thrown at 0x00007FFE39E69E08 in DosyaOkuHizli.exe: Microsoft C++ exception: [rethrow] at memory location 0x0000000000000000. 
Exception thrown at 0x00007FFE39E69E08 in DosyaOkuHizli.exe: Microsoft C++ exception: std::regex_error at memory location 0x000000F751EFEAB0. 
Unhandled exception at 0x00007FFE39E69E08 in DosyaOkuHizli.exe: Microsoft C++ exception: std::regex_error at memory location 0x000000F751EFEAB0. 

が、この

std::regex line("abc"); 

ませんが発生します。

長い式はここで働く:https://www.myregextester.com/index.php

私はちょうど、他のデータとの間に3つの必然的な浮動小数点値を取得しようとしています。


ビジュアルスタジオ2015コミュニティエディションデバッグ64ビット。あなたのどちらかが背中をエスケープする必要があるのWindows 10

+0

入力文字列とは何ですか? – revo

+0

foo bar somewhitespace +123.324 somewhitespace 33434.4545 somewhitespace -3434.4545 somewhitespace biz baz –

答えて

3

\\(1のための2つ)とスラッシュ、あるいはこのようなリテラル生の文字列を使用します。

regex line{R"([\s]+\+?[0-9]+.[0-9]+[\s]+\+?[0-9]+.[0-9]+[\s]+\+?[0-9]+.[0-9]+[\s])"}; 

生の文字列リテラルは、(少なくとも)で文字列を囲みますR"(および)"

生の文字列リテラルの詳細はHERE - 構文(6)を参照してください。