Разбить строку с помощью boost:: алгоритма::split_regex
Я пытаюсь разбить строку с помощью ;
как разделитель, но не когда он экранирован \;
, Строка может содержать символы, цифры и вложенные кавычки. В настоящее время я использую Boost::gorithm::split_regex примерно так:
string data = "hello; world; 100444; \"Hello \\; world\";";
vector<string> data_vec;
boost::algorithm::split_regex( data_vec, data, boost::regex("[^\\\\];");
Я пытался использовать отрицание, но это не имело никакого эффекта. boost::regex("(?:[^\\\\]);")
Какие-либо предложения? Заранее спасибо.
1 ответ
Решение
Вы будете хотеть использовать отрицательный взгляд сзади (?<!regex)
как это
(?<!\\\\);