Простая в использовании поддержка регулярных выражений в C ++?[закрыто]
Вопрос
Я ищу надежный, простой в использовании вычислитель регулярных выражений для native C ++, либо независимый от платформы, либо зависящий от Windows.
Требования:
- Не могу использовать библиотеки регулярных выражений Boost или ACE (к сожалению)
- Не могу использовать .СЕТЕВОЕ регулярное выражение (или любой управляемый код)
Главное требование заключается в том, что он должен быть автономным и открытым.
Решение
C ++ 11 теперь включает поддержку регулярных выражений.Он будет независим от платформы.Вам просто нужен новый компилятор.Ознакомьтесь со следующим списком, чтобы узнать, какой из них использовать.
http://wiki.apache.org/stdcxx/C%2B%2B0xCompilerSupport
Надеюсь, это поможет
Другие советы
попробуй libpcre
Если вы застряли в Windows, у них есть порт Windows, который должен работать.Я знаю электронный текстовый редактор использует его, так что, по крайней мере, это доказательство того, что это работает :-)
Если вы используете Visual Studio, вы можете использовать Visual C ++ 2008 Feature Pack Release, в котором реализованы некоторые функции TR1 и включен синтаксический анализ регулярных выражений. Получи это
Qt имеет также приятный Регулярное выражение реализация QRegExp.Он также не зависит от платформы.
Библиотека GNU C поддерживает регулярные выражения.Он открыт, и повторный код, кажется, легко извлекаем.
Средство регулярных выражений библиотеки GNU C (regcomp(), regexec() и friends) сломано.Вместо этого используйте libetre;сигнатуры функций совпадают с сигнатурами, предоставленными glibc.http://laurikari.net/tre/
Я бы поддержал рекомендацию относительно PCRE.Я использовал его в проектах на C ++ в Windows, и он отлично работает.Это бесплатно, даже для создания коммерческого программного обеспечения.Он также реализует что-то вроде стандартного языка регулярных выражений де-факто, который будет приветствоваться вашими пользователями.PCRE, конечно, совместим с Perl, и Python также использует ту же библиотеку.
Собственный интерфейс PCRE немного неуклюж и очень похож на C, поэтому, вероятно, стоит написать вокруг него красивую оболочку на C ++.Весьма вероятно, что один из них уже существует, но я ни с одним из них не знаком.
C ++ 11 и далее теперь содержит стандартная библиотека регулярных выражений.
Включать в себя <regex>
заголовок и использование.
Почему вы не используете библиотеку регулярных выражений Microsoft ATL?Кенни Керр написал короткая статья об этом недавно.
ATL включает в себя облегченную реализацию регулярных выражений.Хотя изначально он был частью Visual C ++, теперь он включен в состав ATL Server загрузить.
Тот Самый
CAtlRegExp
шаблон класса реализует синтаксический анализатор и механизм сопоставления ....Грамматика регулярного выражения определена в верхней части
atlrx.h
заголовочный файл.
Бесплатная серверная библиотека ATL и инструменты от CodePlex включают в себя анализатор регулярных выражений.Видишь AtlServer в архиве CodePlex
ATL Server - это библиотека классов C ++, которая позволяет разработчикам создавать как клиентскую, так и серверную части приложений C ++ сервисного типа и веб сервисов.Он обеспечивает большую часть функциональности, необходимой для создания крупномасштабные интернет-сайты, такие как обмен сообщениями SOAP, кэширование средства обработки потоков, обработка регулярных выражений, управление состоянием сеанса, мониторинг производительности, поддержка MIME, интеграция с IIS и class для взаимодействия с безопасностью и криптографическая инфраструктура.Более ранние версии библиотеки являются частями Visual Studio 2002, Visual Studio 2003 и Visual Studio 2005.Проект стартовал с версии библиотеки, выпущенной как часть Visual Studio 2005 SP1.