The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

11.03.2010 23:56  Компания Google открыла исходные тексты библиотеки регулярных выражений RE2

Компания Google открыла под лицензией BSD исходные тексты RE2, написанной на языке C++ библиотеки для организации выполнения PCRE-совместимых регулярных выражений. Библиотека отличается высокой скоростью работы, хорошей безопасностью, поддержкой использования в многопоточных программах. RE2 позиционируется в качестве альтернативы реализаций регулярных выражений в PCRE, Perl и Python, особенно эффективной при обработке больших объемов данных.

Для обработки регулярных выражений в RE2 применен метод автомата, отличающийся линейной зависимостью между временем выполнения регулярного выражения и размером текста для которого оно применяется. В реализации регулярных выражений в Perl/PCRE подобная зависимость имеет близкий к экспоненциальному характер. С точки зрения потребления памяти, размер стека в RE2 имеет фиксированную величину. В RE2 поддерживается синтаксис базовых регулярных выражений Perl и PCRE.

  1. Главная ссылка к новости (http://google-opensource.blogs...)
Лицензия: CC-BY
Тип: К сведению
Ключевые слова: pcre, regex, re2, google
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, Аноним (-), 00:09, 12/03/2010 [ответить] [показать ветку] [···]    [к модератору]
  • +1 +/
    лучше чем буст?
     
     
  • 2.3, zhus (ok), 00:33, 12/03/2010 [^] [ответить]    [к модератору]
  • +1 +/
    да :)
     
     
  • 3.11, pavlinux (ok), 01:53, 12/03/2010 [^] [ответить]    [к модератору]
  • +/
    >да :)

    sed !? Не?

     
  • 1.2, LolzN00b (?), 00:22, 12/03/2010 [ответить] [показать ветку] [···]    [к модератору]
  • –7 +/
    У Google пока ничего хорошего не было, кроме, быть может, поиска.
     
     
  • 2.4, ASM (??), 00:34, 12/03/2010 [^] [ответить]    [к модератору]
  • +/
    Поиск построенный на плохих регекспах... Вероятно всё скоро измениться...
     
     
  • 3.13, Онаним (?), 03:59, 12/03/2010 [^] [ответить]    [к модератору]  
  • +/
    В поиске Google уже можно использовать regexp-ы?? Я опять проспал обед?
     
     
  • 4.23, ПринцЧорнойТьмы (ok), 08:53, 12/03/2010 [^] [ответить]    [к модератору]  
  • +/
    http://www.google.com/codesearch -- тут можно.
     
  • 2.6, Ноним (?), 00:41, 12/03/2010 [^] [ответить]    [к модератору]  
  • +/
    google search, google mail и самое главное google adwords и adsense (на них они сделали весь свой капитал) это о популярных продуктах.
    А так их продукты все хороши
     
     
  • 3.14, аноним (?), 04:41, 12/03/2010 [^] [ответить]     [к модератору]  
  • –5 +/
    Поиск да codesearch очень да web-почта, да еще и прямо у большого брата, хорош... весь текст скрыт [показать]
     
     
  • 4.17, Ноним (?), 06:07, 12/03/2010 [^] [ответить]     [к модератору]  
  • +3 +/
    ad это поганая реклама, ее хорошей может разве что больной назвать Если бы т... весь текст скрыт [показать]
     
  • 3.10, pavlinux (ok), 01:46, 12/03/2010 [^] [ответить]    [к модератору]  
  • +/
    Некоторые люди, сталкиваясь с проблемой, думают,
    "- Я знаю, я буду использовать регулярные выражения",
    Теперь у них есть две проблемы. :)

                                   (c) Джэйм Завински

     
  • 1.9, pavlinux (ok), 01:32, 12/03/2010 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    > $ perl -e '("a" x 100000) =~ /^(ab?)*$/;'
    > Segmentation fault (core dumped)
    >$

    pavel@suse64:/tmp> perl -e '("a" x 100000) =~ /^(ab?)*$/;'
    pavel@suse64:/tmp> echo $?
    0

    Просто в гугле юзают х...вый Perl :)

     
  • 1.12, iZEN (ok), 02:45, 12/03/2010 [ответить] [показать ветку] [···]    [к модератору]  
  • –2 +/
    Почему под BSDL? (Риторический вопрос)
     
     
  • 2.15, аноним (?), 04:42, 12/03/2010 [^] [ответить]    [к модератору]  
  • +/
    >Почему под BSDL? (Риторический вопрос)

    А под чем еще?

     
     
  • 3.21, СуперАноним (?), 07:08, 12/03/2010 [^] [ответить]    [к модератору]  
  • –2 +/
    Библиотеку логично под LGPL
     
     
  • 4.25, www2 (ok), 09:27, 12/03/2010 [^] [ответить]    [к модератору]  
  • +2 +/
    Логично для кого?
     
  • 2.22, Аноним (-), 07:25, 12/03/2010 [^] [ответить]    [к модератору]  
  • –2 +/
    потому что своя свобода дороже свободы какого-то там кода
     
  • 2.24, Michael Shigorin (ok), 09:20, 12/03/2010 [^] [ответить]     [к модератору]  
  • +/
    Видимо, потому что PD не по всем юрисдикциям признаётся, а смысл выпуска -- стан... весь текст скрыт [показать]
     
  • 1.16, ACCA (ok), 05:43, 12/03/2010 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    >Для обработки регулярных выражений в RE2 применен метод автомата (http://swtch.com/~rsc/regexp/regexp1.html), отличающийся линейной

    Походу беспонтовый гон, либо в 2007 году был баг в Perl 5.8.7.


    $ perl -e '$n = 100; $x="a?"x $n . "a" x $n; $t = "a" x 100000; if ($t =~ /$x/){ print "match\n"; }'

    match

    Perl 5.10.0 отработал мгновенно, а обещали 10**15 лет.

     
  • 1.26, Дмитрий Телегин (?), 09:36, 12/03/2010 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    >С точки зрения потребления памяти, размер стека в RE2 имеет фиксированную величину

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

     
     
  • 2.27, Карбофос (ok), 10:14, 12/03/2010 [^] [ответить]     [к модератору]  
  • +/
    поиск результатов скана снифера если бы я часто такое использовал, то написал б... весь текст скрыт [показать]
     
     
  • 3.30, Unixoid_потому_что_кривые_руки_писали_этот_модуль (ok), 12:46, 12/03/2010 [^] [ответить]    [к модератору]  
  • +/
    В boost кстати блочные регэкспы есть, я даже юзал когда-то вроде, уже не помню.
     
     
  • 4.32, Карбофос (ok), 13:39, 12/03/2010 [^] [ответить]    [к модератору]  
  • +/
    спасибо за инфу, надо будет посмотреть...
     
  • 3.33, Дмитрий Телегин (?), 14:07, 12/03/2010 [^] [ответить]     [к модератору]  
  • +3 +/
    Написал свою маленькую шуструю программку, позволяющую искать в разных кодировка... весь текст скрыт [показать]
     
     
  • 4.35, Карбофос (ok), 16:18, 12/03/2010 [^] [ответить]    [к модератору]  
  • +/
    а вот за открытый проект - плюсик
     
     
  • 5.37, Аноним (-), 18:21, 12/03/2010 [^] [ответить]     [к модератору]  
  • +/
    Ну разве что за это Потому что аффтар явно не осилил в дупель стандартную, тр... весь текст скрыт [показать]
     
     
  • 6.39, Карбофос (ok), 20:14, 12/03/2010 [^] [ответить]     [к модератору]  
  • +/
    ну может он делал мультиплатформенную прогу в виндах с такими фишками, как grep... весь текст скрыт [показать]
     
     
  • 7.40, Xaionaro (ok), 14:21, 13/03/2010 [^] [ответить]    [к модератору]  
  • +/
    Под винду ж вроде существует пакет GNU утилит.
     
  • 7.42, Mna (??), 16:24, 13/03/2010 [^] [ответить]    [к модератору]  
  • +/
    >ну может он делал мультиплатформенную прогу? в виндах с такими фишками, как
    >grep, вообще полный абзац. кстати, я про опцию -F не знал
    >(стыдно!). просто сканировать как-то большие файлы не приходилось...

    Cygwin существует и давно стабильно работает (http://cygwin.com)

    Недавно доделали работу с UTF-8 в консоли (bash), что не может не радовать.

    Там так же хорошо работают man и info.

     
     
  • 8.43, Карбофос (ok), 17:12, 13/03/2010 [^] [ответить]    [к модератору]  
  • +/
    хех. да знаю я про это, народ. только далеко не все вантузятники это знают.
     
  • 7.46, Дмитрий Телегин (?), 08:58, 15/03/2010 [^] [ответить]    [к модератору]  
  • +/
    > ну может он делал мультиплатформенную прогу? в виндах с такими фишками, как grep, вообще полный абзац. кстати, я про опцию -F не знал (стыдно!). просто сканировать как-то большие файлы не приходилось...

    Не кросплатформенную, я на Debian давно. Кстати если бы опция -F работала, то наверное не писал бы своего :)

     
  • 6.45, Дмитрий Телегин (?), 08:51, 15/03/2010 [^] [ответить]    [к модератору]  
  • +/
    > аффтар явно не осилил в дупель стандартную, требуемую POSIX'ом опцию -F

    Осилил и к сожалению проку от неё было немного. Если она сейчас работает как положено, то только рад :) да и моя программка актуальности не потеряла: и буфер можно задать и кодировки.

     
     
  • 7.49, Дмитрий Телегин (?), 09:52, 15/03/2010 [^] [ответить]    [к модератору]  
  • +/
    > Если она сейчас работает как положено, то только рад

    Только что потестил опцию F и ничего радостного...

    dd if=/dev/zero of=test bs=1M count=2000
    grep -F qwer test

    У меня на ноутбуке всего 1 Гб и через несколько секунд я получил:
    grep: test: Невозможно выделить память

    Для моей программки такие поиски для оперативки ничего не стоят, как собственно и поиски на /dev/sda :)

     
  • 1.28, svn (??), 10:26, 12/03/2010 [ответить] [показать ветку] [···]    [к модератору]  
  • +1 +/
    Не пойму ажиотажа.

    backreference NOT SUPPORTED. Вот и весь секрет трудоёмкость линейной.

     
     
  • 2.31, DeadLoco (ok), 12:59, 12/03/2010 [^] [ответить]    [к модератору]  
  • +1 +/
    Да там не только бекреференсы пострадали, а вообще все тяжелые операции, включая lookahead/lookbehind. Фигня, короче.
     
     
  • 3.38, Аноним (-), 18:32, 12/03/2010 [^] [ответить]     [к модератору]  
  • +/
    Ну чего же сразу фигня то А если не нужны баки, а скорость и небольшое предска... весь текст скрыт [показать]
     
     
  • 4.44, DeadLoco (ok), 19:05, 13/03/2010 [^] [ответить]    [к модератору]  
  • +/
    >>Фигня, короче.
    >
    >Ну чего же сразу фигня то?
    >А если не нужны баки, а скорость и небольшое предсказуемое потребление рамы - нужны?

    Тогда не нужно сравнивать с PCRE.

    "Наш велосипед значительно выигрывает по массо-габаритным характеристикам у Бугатти Вейрон..."

     
  • 1.29, Аноним (-), 11:48, 12/03/2010 [ответить] [показать ветку] [···]     [к модератору]  
  • +1 +/
    В RE2 полностью поддерживается синтаксис регулярных выражений Perl и PCRE НАГ... весь текст скрыт [показать]
     
     
  • 2.34, Дмитрий Телегин (?), 14:25, 12/03/2010 [^] [ответить]    [к модератору]  
  • +/
    >"Grayed out expressions are not supported by RE2."
    >А таких там много.

    Согласен, что не мало, но там большая часть серого от VIM. Убрав его синтаксис картина становится лучше.

     
     
  • 3.36, DeadLoco (ok), 17:22, 12/03/2010 [^] [ответить]    [к модератору]  
  • +/
    >>"Grayed out expressions are not supported by RE2."
    >>А таких там много.
    >
    >Согласен, что не мало, но там большая часть серого от VIM. Убрав
    >его синтаксис картина становится лучше.

    Лучше чего?

    RE2 несравнима с PCRE по функционалу. Фактически, RE2 - куцое подмножество регулярных выражений вообще. Да, в этом подмножестве она может работать оптимальнее PCRE, что не удивительно. Но RE2 - это RE2, а PCRE - это PCRE.

    Лично я уважаю PCRE за богатство функционала при конечности FSA :) и за возможность хранить прекомпилированные FSA для массового повторного использования.

     
     
  • 4.48, Дмитрий Телегин (?), 09:09, 15/03/2010 [^] [ответить]    [к модератору]  
  • +/
    >>Согласен, что не мало, но там большая часть серого от VIM. Убрав
    >>его синтаксис картина становится лучше.
    >
    >Лучше чего?

    Лучше чем с особенностями VIM нереализованными в ни RE2 ни в PCRE :)

     
  • 3.41, ACCA (ok), 15:41, 13/03/2010 [^] [ответить]    [к модератору]  
  • +/
    >>"Grayed out expressions are not supported by RE2."
    >>А таких там много.
    >
    >Согласен, что не мало, но там большая часть серого от VIM. Убрав
    >его синтаксис картина становится лучше.

    Угу. Ещё убрав синтаксис Perl и половину PCRE.

     
     
  • 4.47, Дмитрий Телегин (?), 09:02, 15/03/2010 [^] [ответить]    [к модератору]  
  • +/
    >>Согласен, что не мало, но там большая часть серого от VIM. Убрав
    >>его синтаксис картина становится лучше.
    >Угу. Ещё убрав синтаксис Perl и половину PCRE.

    Какой смысл здесь утрировать? Посмотрите сколько в % останется серого если убрать особенности vim. Или список даже просмотреть внимательно не удосужились?

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2018 by Maxim Chirkov  
    ДобавитьПоддержатьВебмастеруГИД  
    Hosting by Ihor