Строка C ++ / STL: как имитировать регулярные выражения как функции с подстановочными знаками? - PullRequest
2 голосов
/ 18 марта 2010

Я бы хотел сравнить 4-символьную строку с использованием подстановочных знаков.

Например:

std::string wildcards[]=
{"H?  ", "RH? ", "H[0-5]  "};
/*in the last one I need to check if string is "H0  ",..., and "H5  " */

Можно ли реализовать только по STL?

Спасибо, Арман.

EDIT:

Можем ли мы сделать это без boost.regex?
Или я должен добавить еще одну библиотечную зависимость в мой проект? :)

Ответы [ 4 ]

4 голосов
/ 18 марта 2010

Использование Boost.Regex

2 голосов
/ 18 марта 2010

Нет - вам нужно повысить :: регулярное выражение

0 голосов
/ 18 марта 2010

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

Есть ли причина, по которой вы не хотите использовать библиотеку для этого?

0 голосов
/ 18 марта 2010

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

Вы можете проверить свой компилятор C ++, чтобы увидеть, включает ли он какую-либо встроенную библиотеку регулярных выражений. Например, Microsoft включает CAtlRegExp .

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

...