Сведения о вопросе

Pytdev

16:03, 1st July, 2020

Теги

c++   regex    

Easy-to-Use поддержка регулярных выражений в C++?

Просмотров: 455   Ответов: 10

Я ищу надежный, easy-to-use, оценщик регулярных выражений для native C++, либо независимый от платформы, либо специфичный для Windows.

Требования:

  • Не могу использовать библиотеки Boost или ACE regex (к сожалению)
  • Не удается использовать .NET Regex (или любой управляемый код)

Главное требование - чтобы он был автономным и открытым.



  Сведения об ответе

JUST___

18:03, 1st July, 2020

попробуйте libpcre

Если вы застряли на windows, у них есть порт windows, который должен работать. Я знаю, что e-texteditor использует его, так что, по крайней мере, это доказательство того, что он работает :-)


  Сведения об ответе

DAAA

18:03, 1st July, 2020

C++11 теперь включает поддержку регулярных выражений. Он будет независимым от платформы. Вам просто нужен недавний компилятор. Проверьте следующий список, чтобы узнать, какой из них использовать.

http://wiki.apache.org/stdcxx/C%2B%2B0xCompilerSupport

Надеюсь, это поможет


  Сведения об ответе

fo_I_K

18:03, 1st July, 2020

Если вы используете Visual Studio, вы можете использовать Visual C++ 2008 Feature Pack Release, это реализует часть TR1 и включает синтаксический анализ регулярных выражений. Получить его


  Сведения об ответе

darknet

18:03, 1st July, 2020

Qt также имеет хорошую реализацию регулярного выражения QRegExp . Он также независим от платформы.


  Сведения об ответе

prince

18:03, 1st July, 2020

Библиотека GNU C поддерживает регулярные выражения . Он открыт, и код RE, похоже, легко извлекается.


  Сведения об ответе

KOMP

18:03, 1st July, 2020

Средство регулярных выражений библиотеки GNU C (regcomp(), regexec() и друзья) нарушено. Вместо этого используйте libetre; сигнатуры функций соответствуют сигнатурам, предоставленным glibc. http://laurikari.net/tre/


  Сведения об ответе

dumai

18:03, 1st July, 2020

Я бы поддержал рекомендацию для PCRE . Я использовал его в проектах C++ в Windows, и он отлично работает. Это бесплатно, даже для создания коммерческого программного обеспечения. Он также реализует что-то вроде стандартного языка регулярных выражений de facto, который будет приветствоваться вашими пользователями. PCRE, конечно, совместим с Perl, и Python также использует ту же библиотеку.

Родной интерфейс PCRE немного неудобен и очень похож на C, поэтому, вероятно, стоит написать хорошую оболочку C++ вокруг него. Там, скорее всего, уже есть один, но я не знаком ни с одним из них.


  Сведения об ответе

JUST___

18:03, 1st July, 2020

C++11 и forward теперь содержит стандартную библиотеку регулярных выражений .
Включите заголовок <regex> и используйте.


  Сведения об ответе

baggs

18:03, 1st July, 2020

Почему бы вам не использовать библиотеку Microsoft ATL regex? Кенни Керр недавно написал короткую статью на эту тему.

ATL включает в себя упрощенную реализацию регулярных выражений. Хотя первоначально он был частью Visual C++, а теперь входит в состав сервера ATL скачать.

Шаблон класса CAtlRegExp реализует синтаксический анализатор и сопоставление двигатель. ...

Регулярное выражение grammar определяется в верхней части файла заголовка atlrx.h .


  Сведения об ответе

appple

18:03, 1st July, 2020

Бесплатной библиотеки ATL-сервера и инструментов CodePlex включает в себя анализатор regex. Смотрите AtlServer в архиве CodePlex

ATL Server-это библиотека классов C++, которая позволяет разработчикам создавать как клиентская, так и серверная части приложений и веб-служб типа C++ сервисы. Он обеспечивает большую часть функциональности, необходимой для сборки крупномасштабные интернет-сайты, такие как SOAP сообщений, кэширование средства, средства потоковой обработки, обработка регулярных выражений, управление состоянием сеанса, мониторинг производительности, поддержка MIME, интеграция с IIS и классом для взаимодействия с безопасностью и криптографическая инфраструктура. Более ранними версиями библиотеки являются части Visual Studio 2002, Visual Studio 2003 и Visual Studio 2005 год. Проект был запущен с версии библиотеки, выпущенной в составе Visual Studio 2005 SP1.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться