Есть ли в VCL библиотека для регулярных выражений?

Если нет, вы можете порекомендовать хорошую стороннюю библиотеку.

9
Charles Faiga 11 Сен 2009 в 00:32
4
Люди могут подумать о том, чтобы отдать несколько голосов за это: delphi.uservoice.com/pages/4432-general/suggestions/…
 – 
Nick Hodges
11 Сен 2009 в 00:49

7 ответов

Лучший ответ

См. TPerlRegEx (download), хотя это всего лишь оболочка для PCRE.

4
Jan Goyvaerts 9 Мар 2010 в 11:24
@ Билль. ... и вы знаете лучше OP, который принял ответ?
 – 
Francesca
27 Июл 2010 в 21:18
2
Я уверен. Ответа на фактический вопрос, то есть «нет, vcl не поддерживает библиотеку регулярных выражений» там нет. Библиотека, упомянутая в этом ответе, не является частью Delphi VCL (факт, который нигде не упоминается в ответе). Это отличный ответ на вопрос stackoverflow.com/questions/1282749
 – 
Willbill
28 Июл 2010 в 10:43
6
OP также запросил стороннюю библиотеку, если ее нет в VCL, поэтому я думаю, что anwser был подходящим, хотя сегодня есть библиотека (см. Ответ ниже)
 – 
Asped
4 Окт 2013 в 13:53

Начиная с Delphi XE, RTL поддерживает регулярные выражения:

http://docwiki.embarcadero.com/RADStudio/en/VCL_and_RTL_Changes_for_XE

RegularExpressions.TRegEx - это основная запись, которую пользователь должен сопоставить и заменить регулярными выражениями. Члены модуля RegularExpressions составляют интерфейс, очень близкий к интерфейсу MSDN, ...

А также

RegularExpressionsCore.TPerlRegEx реализует Perl-совместимый обычный выражения (http://www.regular-expressions.info/pcre.html).

9
mjn 23 Фев 2011 в 21:06

Библиотека кода джедаев (JCL) предоставляет регулярное выражение на основе Perl. Загрузите JCL по этой ссылке.

После установки перейдите в папку установки / source / common, и у вас будут JclPCRE.pas и pcre.pas.

5
delphigeistdelphigeist 12 Сен 2009 в 12:18

Delphi не предоставляет библиотеки регулярных выражений в VCL.

Есть некоторые сторонние единицы регулярных выражений.

DIRegExp

TRegExpr 2 (сайт не работает 22.9.2009)

5
sdu 22 Сен 2009 в 16:14

Нет ни одного «в коробке», как говорили другие. Однако нам нужно быть осторожными, когда мы говорим «можем ли мы иметь регулярное выражение в IDE / VCL», потому что два разных человека, просящих об этом, могут иметь две очень разные идеи относительно какое регулярное выражение они хотят видеть поддерживаемым.

Поэтому, хотя было бы неплохо иметь "встроенную" форму поддержки регулярных выражений, вы должны знать, что это приведет к проблемам, когда люди начнут обмениваться рецептами регулярных выражений (с другими людьми, не использующими Delphi) и не могут понять, почему один действительное регулярное выражение человека не является действительным регулярным выражением в Delphi.

Тогда это будет «регулярное выражение в Delphi не работает» или «почему у нас не может быть поддержки регулярных выражений XYZ, а также поддержки разновидностей ABC?»

Поэтому на данный момент я бы сказал, что наличие выбора того, какое регулярное выражение подходит вам, в некотором смысле является преимуществом, если вы можете найти компонент / библиотеку для Delphi, которая поддерживает этот вариант. :)

На сайте regular-expressions.info также есть страница, посвященная поддержке Delphi для regexp.

3
Deltics 11 Сен 2009 в 05:50

RegEx - это еще одна вещь, которой нет в Delphi. Возможно, вы попробуете компоненты на основе PCRE для Delphi (сам не тестировал) .

Я использовал TRegExp (упомянутый sdu) несколько лет назад, но теперь ссылка кажется мертвой. Любопытный...

1
Community 23 Май 2017 в 14:48

Если вы собираетесь использовать библиотеку кода джедаев (JCL), вам все равно потребуется установить библиотеку PCRE.

0
David GrayDavid Gray 13 Сен 2009 в 05:58