std::regex подстрока
От: _NN_ www.nemerleweb.com
Дата: 29.07.15 10:02
Оценка:
Почему в С++ сопоставление регулярного выражения ведет себя как-будто добавили там ^$ ?

#include <regex>
#include <iostream>
using namespace std;

int main()
{
    cout << regex_match("xax", regex("a"));
}


В отличии от других языков как javascript, C# и т.п.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: std::regex подстрока
От: _DAle_ Беларусь  
Дата: 29.07.15 10:20
Оценка: 1 (1)
Здравствуйте, _NN_, Вы писали:

_NN>Почему в С++ сопоставление регулярного выражения ведет себя как-будто добавили там ^$ ?


Ну вот такая логика у regex_match (флагами можно изменить это поведение). Есть ведь еще regex_search.
Re[2]: std::regex подстрока
От: _NN_ www.nemerleweb.com
Дата: 29.07.15 10:36
Оценка:
Здравствуйте, _DAle_, Вы писали:

_DA>Ну вот такая логика у regex_match (флагами можно изменить это поведение). Есть ведь еще regex_search.


Ясно.
Видимо привык , что в других языках название match подразумевает алгоритм поиска как search.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: std::regex подстрока
От: Кодт Россия  
Дата: 29.07.15 10:40
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Почему в С++ сопоставление регулярного выражения ведет себя как-будто добавили там ^$ ?


match сопоставляет префикс, search — ищет в середине.
Это во многих перло-совместимых библиотеках принято — в питоне, например.
Перекуём баги на фичи!
Re[2]: std::regex подстрока
От: _DAle_ Беларусь  
Дата: 29.07.15 11:35
Оценка:
Здравствуйте, Кодт, Вы писали:

К>match сопоставляет префикс, search — ищет в середине.


Только std::regex_match сопоставляет не префикс, а всю строку целиком.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.