[Delphi] Работа с текстом.. м.б. регулярные выражения..- автоматизиров

yolki

Есть множество строк, скажем такого вида:

Art. 10 applicable
Art. 10 inapplicable
Art. 10 non applicable
Art. 11 applicable
Art. 13 applicable
Art. 13 inapplicable
Art. 13 non applicable
Art. 14 applicable
rt.6 inapplicable
Art.6-1 discuté
Atticle 6 not applicable
au paragraphe 1 de l'article 6 inapplicable
Partly inadmissible
P1-1 applicable
P1-1 inapplicable
P1-1 non applicable
и т.п.

хочется сделать автоматизированный перевод в множество строк:

Статья ... применима
Статья ... неприменима
...

Чем можно воспользоваться?
Пусть не всё, но хотя бы 95% чтобы прошло автоматизированную обработку.
Изначальный список - очень длинный ~ 10K вариантов, конечный список - ок. 100 вариантов.

Ivan8209

Я бы использовал awk.
---
...Я работаю антинаучным аферистом...

evgen5555

или perl -e

yolki

надо на Delphi.

Ivan8209

Использовать AWK через IPC.
Подрубить RE через FFI.
---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."

Elina74

В дельфи есть библиотека pcre - регулярные выражения.

yolki

А можно ли сделать следующее:
предположим, есть строка
"AAA 123 BBB 456 CCC"
Шаблон:
"AAA * BBB * CCC"
Можно ли узнать [если шаблон подходит], на что заменились р.в.?
типа $1, $2.. не знаю, как там в перле можно было бы..

Elina74

Можно ли узнать [если шаблон подходит], на что заменились р.в.?
типа $1, $2.. не знаю, ка
Если поставишь круглые скобки в нужных местах,
AAA(.*?)BBB(.*?)CCC
получишь искомое в некоем массиве. Как именно - смотри хелп, точнее не помню.

0000

Можно сбацать компонент на WindowsScriptComponent использующий возможности WindowsScriptHost (у него есть поддержка регулярных выражений).
А потом из Delphi работать как с COM-объектом

Elina74

А потом из Delphi работать как с COM-объектом
А вот отсюда поподробнее... Неужто это так просто?

0000

Ну смотря как компонент напишешь

Dasar

> Можно сбацать компонент на WindowsScriptComponent использующий возможности WindowsScriptHost (у него есть поддержка регулярных выражений).
> А потом из Delphi работать как с COM-объектом
Тогда уж сразу - эти регулярные выражения использовать из Delphi.
Они же уже сразу идет как com-объект

Dasar

> А вот отсюда поподробнее... Неужто это так просто?
просто, но громоздко
напрягает ручная обработка ошибок и addref/release-ы

vijrel7878

если нужна такая штука



(*
TRegExpr library
Regular Expressions for Delphi
v. 0.942
Author:
Andrey V. Sorokin
St-Petersburg
Russia
,
http://anso.da.ru
http://anso.virtualave.net
This library is derived from Henry Spencer sources.
I translated the C sources into Object Pascal,
implemented object wrapper and some new features.
Many features suggested or partially implemented
by TRegExpr's users (see Gratitude below).
напиши мыло куда скинуть

gopnik1994

регэкспы есть в винде в виде COM объектов.
работают в разы быстрее, чем эта библиотека Сорокина.
На DelphiKingdom было сравнение...

vijrel7878



работают в разы быстрее, чем эта библиотека Сорокина.
На DelphiKingdom было сравнение...
я не сторонник использования черных ящиков, а тем более использования COM.
немного уточню: если есть возможность юзать что-то в исходных кодах, то это предпочтительнее, на мой взгляд

gopnik1994

оно не совсем черный ящик, оно хорошо документировано
а что плохого в COM?
а XML-парсер ты тоже опенсорсовый под виндой юзаешь (если юзаешь)?
просто MSXML тоже идет в виде COM библиотеки...

vijrel7878

да в общем речь не о том.
а о том, что под дебагером гораздо лучше код изучать, чем доки на интерфейс читать и догадываться о недокументированном. Да и можно всегда дописать если что-то нужно.
Альтернатива то есть в предложенном
 
Оставить комментарий
Имя или ник:
Комментарий: