Анонимный пользователь
Дополнительно
Простая в использовании поддержка регулярных выражений в C++?
Я ищу надежный, простой в использовании оценщик регулярных выражений для родного C++, либо независимый от платформы, либо специфичный для Windows.
Требования:
- Нельзя использовать библиотеки Boost или ACE regex (к сожалению).
- Нельзя использовать .NET Regex (или любой управляемый код)
Главное требование - он должен быть автономным и открытым.
24
10
C ++ 11 теперь включает поддержку регулярных выражений. Это будет независимая платформа. Вам просто нужен недавний компилятор. Проверьте следующий список, чтобы знать который использовать.
http://wiki.apache.org/stdcxx/C%2B%2B0xCompilerSupport
Надежда это помогает
try libpcre
Если вы застряли на windows, у них есть порт для windows, который должен работать. Я знаю, что e-texteditor использует его, так что, по крайней мере, это доказательство того, что он работает :-)
Если Вы используете Визуальную Студию, Вы можете использовать Выпуск Пакета Особенности Visual C++ 2008 года, это осуществляет некоторые TR1 и включает парсинг регулярного выражения. [Получите его] [1]
[1]: http://www.microsoft.com/downloads/details.aspx? FamilyId=D466226B-8DAB-445F-A7B4-448B326C48E7& displaylang=en
У QT есть также хорошее Регулярное выражение внедрение QRegExp. Это - также независимая платформа.
Библиотека GNU C поддерживает регулярные выражения. Она открыта, и код RE кажется легко извлекаемым.
Я был бы второй рекомендация для PCRE. Я использовал его в C ++ проекты в Windows, и это работает отлично. It' s свободный, даже для строительства коммерческого программного обеспечения. Это также осуществляет что-то вроде фактического стандартного языка регулярного выражения, который будет нравиться Вашим пользователям. PCRE, конечно, Perl-совместим, и Пайтон также пользуется той же библиотекой.
Родной интерфейс PCRE немного неловкий и очень C-стиль, таким образом, it' s, вероятно, стоящий написания хороший C ++ обертка вокруг этого. Там вероятно, уже тот там, но I' m не знакомый с любым.
Средства регулярных выражений библиотеки GNU C (regcomp(), regexec() и друзья) сломаны. Вместо этого используйте libetre; сигнатуры функций совпадают с сигнатурами, предоставляемыми glibc. http://laurikari.net/tre/
C ++ 11 и вперед теперь содержит стандартная библиотека регулярного выражения.
Включайте '< regex>'; удар головой и использование.
Почему don' t Вы используют Microsoft ATL' s regex библиотека? Кенни Керр написал короткая статья на этом недавно.
Свободная Библиотека Сервера ATL и Инструменты от CodePlex включают regex анализатор. Посмотрите [AtlServer в Архиве CodePlex] [1]
[1]: https://archive.codeplex.com/? p=atlserver