Простая в использовании поддержка регулярных выражений в С++?
Я ищу надежного, простого в использовании, регулярного выражения для собственного С++, независимо от платформы или для Windows.
Требования:
- Невозможно использовать библиотеки Boost или ACE regex (к сожалению)
- Невозможно использовать .NET Regex (или любой управляемый код)
Основное требование состоит в том, что он должен быть автономным и открытым.
Ответы
Ответ 1
С++ 11 теперь включает поддержку регулярных выражений.
Он будет независимым от платформы. Вам просто нужен недавний компилятор.
Проверьте следующий список, чтобы узнать, какой из них использовать.
http://wiki.apache.org/stdcxx/C%2B%2B0xCompilerSupport
Надеюсь, что это поможет
Ответ 2
попробуйте libpcre
Если вы застряли в окнах, у них есть порт Windows, который должен работать. Я знаю, что e-texteditor использует его, поэтому, по крайней мере, это доказательство работает: -)
Ответ 3
Если вы используете Visual Studio, вы можете использовать Visual С++ 2008 Feature Pack Release, это реализует некоторые из TR1 и включает регулярный анализ выражений. Получить его
Ответ 4
Qt также имеет приятный Регулярное выражение реализация QRegExp. Он также независим от платформы.
Ответ 5
Библиотека GNU C поддерживает регулярные выражения. Он открывается, и код RE кажется легко извлекаемым.
Ответ 6
Функция регулярных выражений библиотеки GNU C (regcomp(), regexec() и друзей) нарушена. Вместо этого используйте libetre; сигнатуры функций соответствуют тем, которые предоставляются glibc.
http://laurikari.net/tre/
Ответ 7
Я бы предпочел рекомендацию PCRE. Я использовал его в проектах на С++ в Windows, и он отлично работает. Это бесплатно, даже для создания коммерческого программного обеспечения. Он также реализует нечто вроде стандартного языка регулярных выражений, который будет приветствовать ваших пользователей. PCRE, конечно, совместим с Perl, и Python также использует одну и ту же библиотеку.
Собственный интерфейс PCRE немного неудобен и очень C-style, поэтому, вероятно, стоит написать хорошую обертку С++ вокруг него. Скорее всего, уже есть один, но я не знаком ни с кем.
Ответ 8
С++ 11 и вперед теперь содержит стандартную библиотеку регулярных выражений .
Включите заголовок <regex>
и используйте.
Ответ 9
Почему вы не используете библиотеку регулярных выражений Microsoft ATL? Недавно Кенни Керр написал короткую статью
Ответ 10
Бесплатная библиотека ATL-сервера из Codeplex включает в себя парсер регулярных выражений.
ATL-сервер