C++ std::regex неожиданно соответствует символам UTF-8C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 C++ std::regex неожиданно соответствует символам UTF-8

Сообщение Anonymous »

Я столкнулся с неожиданным поведением std::regex при сопоставлении строк, содержащих символы UTF-8.

Код: Выделить всё

#include 
#include 
#include 

bool matchPattern(const std::string& str) {
// Regular expression pattern
std::string pattern = R"(^[a-zA-Z0-9,.!?;:,。!?'"()\[\]_{}\-*…✓ ]+$)";

// Create regex object
std::regex regexPattern(pattern);

// Check if matches
return std::regex_match(str, regexPattern);
}

int main() {
std::string data1 = "「";  // Chinese left quotation mark (UTF-8)
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79802693/c-stdregex-matches-utf-8-characters-unexpectedly[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»