Простая в использовании поддержка регулярных выражений в C ++? [закрыто]

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

Требования:

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

Основным требованием является то, что он должен быть автономным и открытым.

4.08.2008 05:50:00
Просто любопытно - почему вы не можете использовать повышение?
svec 6.08.2008 16:16:31
@svec Поскольку исходный код предназначен для распространения, и многие из тех, кто его использует, не имеют Boost и не могут или не хотят загружать и собирать Boost. Но некоторые библиотеки планируется включить, так что это хорошо. Должно было случиться 5 лет назад, но эй. Во всех смыслах.
user2189331 11.08.2008 06:10:13
Но клиенты не должны иметь установленное повышение. Просто статически связывайте с boost, и проблем не должно быть. (И в любом случае вы всегда должны статически связываться с boost, поскольку даже если клиенты его установили, они могут иметь разную версию или скомпилировать ее с одинаковыми параметрами.)
James Kanze 7.08.2013 18:17:00
@JamesKanze - это зависимость от исходного кода, поскольку мы распространяем исходники, а не встроенную библиотеку. Если бы это было до меня, каждый основной компилятор C ++ и IDE поставлялся бы с Boost. В 2008 году, когда был задан этот вопрос, это было далеко не так. Достаточно сложно заставить людей использовать STL, не говоря уже о Boost.
user2189331 8.05.2014 18:49:16
@JamesDevlin Я не знаю о доставке с Boost; Повышение не является панацеей, и я выбираю, использовать его или нет в каждом конкретном случае. (На самом деле, поскольку теперь я могу использовать C ++ 11, я вообще не использую Boost. Почти все, что я использовал раньше, - это регулярные выражения.)
James Kanze 9.05.2014 08:16:44
10 ОТВЕТОВ
РЕШЕНИЕ

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

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

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

11
20.12.2016 08:44:46

попробуй libpcre

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

10
4.08.2008 06:23:51

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

8
4.08.2008 19:44:24

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

8
4.04.2013 12:34:20

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

5
4.08.2008 06:41:29

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

4
4.08.2008 12:23:35

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

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

4
11.08.2008 08:25:13

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

3
8.05.2016 14:36:25

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

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

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

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

2
31.03.2018 23:08:29

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

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

1
31.03.2018 23:16:21