Регулярные выражения

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Ответить
itwork
новенький
Сообщения: 41
Зарегистрирован: 28.12.2006 13:32:28

Регулярные выражения

Сообщение itwork »

ЛЮди поделитесь сылками документации или теориями по "Регулярным выражениям" (и лучше чтоб она была связана с Паскалем) Ж)
Или кидайте док. мне на мыло domaincall@inbox.lv
DiFor
незнакомец
Сообщения: 6
Зарегистрирован: 12.10.2007 19:44:21
Откуда: Пермь

Сообщение DiFor »

Кстати как в фпц с регулярами? есть ли уже что-то реализованное?
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

было на форуме . в поиск.

на дельфе отдельный юнит юзал, если найду то выкладу, но не в этом месяце.
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

пакет regexpr из состава FPC - это разве не то?
DiFor
незнакомец
Сообщения: 6
Зарегистрирован: 12.10.2007 19:44:21
Откуда: Пермь

Сообщение DiFor »

Спасибо, покурю его
Аватара пользователя
debi12345
долгожитель
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение debi12345 »

DiFor писал(а):Спасибо, покурю его

Родной из FPC - слабоватый. хотя и компактный. И самое страшное - он не поддерживает юникод.
Зато в Инете легко обнаруживается отдельный юнит - RegExpr. Вот он реально то, что нужно.
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

ага вот про него я и говорил.
Аватара пользователя
GN
новенький
Сообщения: 67
Зарегистрирован: 29.07.2007 07:35:56
Откуда: Казахстан
Контактная информация:

Сообщение GN »

Код: Выделить всё

var
  st, st2, st3: String;

begin
  st := 'http://freepascal.ru';
  st2 := '[img]*[/img]';


Как с помощью RegExpr заменить "*" на st?
Аватара пользователя
GN
новенький
Сообщения: 67
Зарегистрирован: 29.07.2007 07:35:56
Откуда: Казахстан
Контактная информация:

Сообщение GN »

Решил проблему в лоб :)

Код: Выделить всё

function zvezda(maska, adres, zamena: String): String;
var
  i: SmallInt;
  dl_zamena: SmallInt;
 
begin

  dl_zamena := Length(zamena);
  i := pos(zamena, maska);
  Delete(maska, i, dl_zamena);
  Insert(adres, maska, i);
  zvezda := maska;

end; 
Аватара пользователя
shade
энтузиаст
Сообщения: 879
Зарегистрирован: 21.02.2006 19:15:48
Откуда: http://shamangrad.net/
Контактная информация:

Сообщение shade »

SysUtils.StringReplace - ещё никто не отменял :wink:

Код: Выделить всё

uses SysUtils;

begin
  writeln( StringReplace('[img]*[/img]', '*', 'http://freepascal.ru', [rfReplaceAll]) );
end.
Аватара пользователя
GN
новенький
Сообщения: 67
Зарегистрирован: 29.07.2007 07:35:56
Откуда: Казахстан
Контактная информация:

Сообщение GN »

shade спасибо, буду иметь ввиду.
Ответить