我正打算使用下面的正則表達式來捕獲文件的路徑和名稱:正則表達式的Visual Studio
std::regex capture_path_name_file("(.+)\\([^\\]+)\\.[^\\]+$");
但在運行時(我使用的Visual Studio)我得到的正則表達式錯誤
error_brack: the expression contained mismatched [ and ]
設法找出原因我想下面的正則表達式:
std::regex test("[^\\]")
,我得到了同樣的錯誤。
我過我的正則表達式中regex101.com(有細微的差別,我不得不使用\.
代替\\.
)
感謝您的幫助。
在C++語法中,''[^ \\]「'表示'[^ \]',它在正則表達式中是不匹配的[']。如果你的意思是創建一個'不反斜槓'的字符類,你必須爲C++和一次正則表達式轉義一次,即'[^ \\\\'''。 – Biffen
這是爲PHP,但也應該回答你的問題:http://stackoverflow.com/a/14783396/4181011 –
請參閱[本演示](https://ideone.com/UpArVo)。 –