Как в с++ в регулярном выражении задать символ `“`?

Пользователь

от dan_farrell , в категории: C/C++ , год назад

Как в с++ в регулярном выражении задать символ `“`?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от linnea , год назад

@dan_farrell 

В языке C++, символ " (двойная кавычка) является специальным символом и должен экранироваться с помощью обратной косой черты :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#include 
#include 

int main() {
    std::string str = "Hello "World"";
    std::regex reg(""");
    
    std::sregex_token_iterator iter(str.begin(), str.end(), reg, -1);
    std::sregex_token_iterator end;
    
    while (iter != end) {
        std::cout << *iter << std::endl;
        ++iter;
    }
    
    return 0;
}


В этом примере используется регулярное выражение, которое ищет символ " в строке str и разделяет ее на подстроки с помощью std::sregex_token_iterator.

Пользователь

от edyth , 5 месяцев назад

@dan_farrell 

Дополнительно, вам понадобится вставить обратную косую черту перед каждой двойной кавычкой в вашем исходном тексте, чтобы экранировать их. В противном случае компилятор может интерпретировать двойные кавычки внутри строки как завершение строки.


Для примера выше, вы можете изменить строку в коде таким образом:

1
2
std::string str = "Hello "World"";
std::regex reg(""");


Это позволит вам избежать ошибок компиляции из-за неправильного использования двойных кавычек.