LINUX.ORG.RU

SRELL 4.056 — библиотека ECMAScript-совместимых регулярных выражений

 , , ,


0

1

11 сентября состоялся выпуск 4.056 C++ библиотеки SRELL (Std::RegEx-Like Library), реализующей ECMAScript-совместимые регулярные выражения.

Список изменений:

  • поддержка Unicode 16.0.0;
  • другие небольшие изменения.

Особенности библиотеки:

  • header-only;
  • ECMAScript-совместимые регулярные выражения;
  • дизайн а-ля std::regex;
  • поддержка типов char8_t, char16_t и char32_t для C++11 и более поздних версий стандарта.

Более подробное описание доступно на сайте автора.

История изменений: англ./яп..
Постоянная ссылка на актуальную версию: https://www.akenotsuki.com/misc/srell/srell-latest.

>>> Подробности

★★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 2)

Ответ на: комментарий от SL_RU

Почему? По твоей ссылке несколько проблем при использовании без подробностей. И необходимость лицензии на регэксп, что звучит странно, т.к. если на их и нужна лицензия, то это проблемы разработчиков библиотек регулярок. Да и вообще этот пассаж про необходимость лицензии звучит сомнительно.

rumgot ★★★★★
()
Последнее исправление: rumgot (всего исправлений: 1)
Ответ на: комментарий от WatchCat

Ну я и спросил, молчит пока. Мне и без сабжа новости норм.

Bfgeshka ★★★★★
()
Ответ на: комментарий от SL_RU

Надо запретить перловские, их невозможно читать. А ECMA хорошие, красивые.

Vilicus
()
Ответ на: комментарий от Skullnet

самые вкусные regex для меня это в перле, вот их бы полностью (все частично их юзают) на в си, grep, sed добавить

s-warus ★★★
()
Ответ на: комментарий от dataman

Не думаю, что многое изменилось.

@seiken, я зря не попробовал сам, исправляюсь.
CTRE отключил в matcheroni/examples/regex/regex_benchmark.cpp, лень разбираться с ошибками компиляции.
$ g++-14 -std=c++20 -I../.. -O3 regex_benchmark_my.cpp

Regex benchmark shootout
Benchmarking baseline:
Email: Checksum 0x00000000, time 0.004513
Email: Checksum 0x00000000, time 0.000182
Email: Checksum 0x00000000, time 0.000166

Benchmarking Matcheroni:
Email: Match count    0, time 0.000185 msec
URL:   Match count    0, time 0.000162 msec
IP4:   Match count    0, time 0.000166 msec

Benchmarking std::regex:
Email: Match count    0, time 0.001538
URL:   Match count    0, time 0.000294
IP4:   Match count    0, time 0.000362

Benchmarking Boost:
Email: Match count    0, time 0.000293
URL:   Match count    0, time 0.000197
IP4:   Match count    0, time 0.000201

Benchmarking Srell:
Email: Match count    0, time 0.018666
URL:   Match count    0, time 0.000253
IP4:   Match count    0, time 0.000336

$ clang-20 -std=c++20 -stdlib=libc++ -I../.. -lc++ -O3 regex_benchmark_my.cpp

Regex benchmark shootout
Benchmarking baseline:
Email: Checksum 0x00000000, time 0.000769
Email: Checksum 0x00000000, time 0.000173
Email: Checksum 0x00000000, time 0.000162

Benchmarking Matcheroni:
Email: Match count    0, time 0.000217 msec
URL:   Match count    0, time 0.000299 msec
IP4:   Match count    0, time 0.000239 msec

Benchmarking std::regex:
Email: Match count    0, time 0.000810
URL:   Match count    0, time 0.000345
IP4:   Match count    0, time 0.000232

Benchmarking Boost:
Email: Match count    0, time 0.000246
URL:   Match count    0, time 0.000209
IP4:   Match count    0, time 0.000250

Benchmarking Srell:
Email: Match count    0, time 0.000406
URL:   Match count    0, time 0.000248
IP4:   Match count    0, time 0.000232
dataman ★★★★★
() автор топика
Ответ на: комментарий от dataman

Если нужны ECMA-Script регулярки

@Skullnet, я вспомнил, что своя реализация есть в https://github.com/bellard/quickjs.
В других JS-движках тоже есть, конечно, но в quickjs она не зависит от остальных исходников.

dataman ★★★★★
() автор топика
Последнее исправление: dataman (всего исправлений: 1)

Вот и зачем? Есть же венец творения, PCRE, сниспосланный нам б-горавным Ларри Уоллом. Зачем делать библиотеки для поддержки неполноценных недовыражений? Всё равно лучше PCRE уже не будет, зачем соглашаться на суррогатную подмену?

Smacker ★★★★★
()
Ответ на: комментарий от Smacker

Вот и зачем?

Потому что может.

PCRE, сниспосланный нам б-горавным Ларри Уоллом.

Нет, автор PCRE – Philip Hazel.

dataman ★★★★★
() автор топика
Ответ на: комментарий от dataman

Нет, автор PCRE – Philip Hazel.

Сразу видно пробелы в религозном мышлении. Филип Хейзел был лишь инструментом в руках Ларри Уолла, движущимся по плану и воле Его. Нужно просто задуматься: смог бы PCRE «самозародиться», если бы никакого Ларри Уолла не было?

Smacker ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.