Есть ли в MSVC библиотека для регулярных выражений? - PullRequest
1 голос
/ 03 июля 2010

Если я собираю программу на C с помощью gcc, я могу смело предположить, что функции в regex.h доступны. Могу ли я предположить, что есть библиотека регулярных выражений, если кто-то компилирует компилятор C от Microsoft?

Ответы [ 5 ]

1 голос
/ 04 июля 2010

только C ++, но может быть чем-то, что вы можете использовать (или перенести):

Visual C ++ 2010 включает поддержку библиотеки регулярных выражений TR1.

Он также доступен для VC ++ 2008 в пакете функций:

0 голосов
/ 04 июля 2010

Если вы хотите POSIX-совместимую семантику регулярных выражений (и тот же API тоже!), То лучшей библиотекой регулярных выражений является TRE: http://laurikari.net/tre/

В отличие от большинства реализаций регулярных выражений, он следует POSIX именно в отношении совпадений, которые он возвращает для заключенных в скобки подвыражений, и это O(n), тогда как большинство реализаций O(2^n) во времени.

Google также имеет новую реализацию регулярных выражений, которая использует Perl-совместимый синтаксис, если вы предпочитаете это. Вы можете найти ссылку на веб-сайте TRE.

Редактировать: Кстати, кажется, TRE поставляется с файлами проекта, чтобы собрать его под MSVC.

0 голосов
/ 03 июля 2010

Попробуйте Boost или дождитесь выхода C ++ 1x ...

0 голосов
/ 04 июля 2010

Нет библиотеки регулярных выражений C / C ++, связанной с msvc.C ++ / CLI имеют доступ к классам регулярных выражений .NET.

Возможно, вы можете использовать PCRE

0 голосов
/ 03 июля 2010

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

Regex не является частью стандартной библиотеки C / C ++, поэтому вам не следует полагаться на какой-либо компилятор, предоставляющий такую ​​библиотеку по умолчанию. Лучше всего взять отдельную библиотеку регулярных выражений для C (я уверен, что существует множество доступных) и включить ее в свой код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...