Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.01.28;
Скачать: CL | DM;

Вниз

Как найти в заданном тексте, сочетания символов, которые подходят заданной схеме?   Найти похожие ветки 

 
Delphimun ©   (2002-01-07 12:11) [0]

Как найти в заданном тексте, сочетания символов, которые подходят заданной схеме?

Например дан текст:
fgjkfgj
g
ffgfgfg fgfgfk fgfjg Delphimun@rambler.ru dfdfdf ddfdf Maxsim@mail.ru dsdsds sdsd dsd Artem@pochta.ru kfjgkfjgjfg jfkgj
gfg fgfg Svete@world.com dsdssdsdsds dfdfd/ @gffgfg ffgf

И мне в этом тексте нужно найти все e-mail -ы и поместить их скажем в масив или listbox, тоесть, чтоб в listbox-е были записи:

Delphimun@rambler.ru
Maxsim@mail.ru
Artem@pocta.ru
Sveta@world.com


 
Delphimun ©   (2002-01-07 14:14) [1]

Схема на мой взгляд будет примерно такой:

##########@##########.##

Только как всё сделать до меня не доходит.


 
3d[Power] ©   (2002-01-07 14:17) [2]

Собиратель емэйлов блин!


 
Leshuz ©   (2002-01-07 16:44) [3]

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


 
Delphimun ©   (2002-01-07 18:24) [4]

Leshuz © >
пришли пожалуйста!


 
marat_from_tomsk ©   (2002-01-08 05:08) [5]

Рекомендую для использования как раз позволяет определить
соотвествует ли входная строка требуемому образцу


(* (c) 1996, tomsk, guards, marat@tts.tomsk.su, ap@tts.tomsk.su *)

unit MatchUnits;

interface

uses Classes;

const
c1 = "*";
c2 = "?";

function Match(str, pattern: string): boolean;

implementation

function RMatch(str, pattern: string; i, j: integer): boolean;
var
k: integer;
f: boolean;
begin
if pattern = "" then begin result := true; exit;
end;
while true do begin
if (i > Length(str)) and (j > Length(pattern)) then begin
result := true;
exit;
end else if j > Length(pattern) then begin
result := false;
exit;
end else if pattern[j] = c1 then begin
k := i;
if j = Length(pattern) then begin
result := true;
exit;
end else begin
while true do begin
f := Rmatch(str, pattern, k, j + 1);
if (f or (k > Length(str))) then begin
result := f;
exit;
end;
inc(k);
end;
end;
end else if i > Length(str) then begin
result := false;
exit;
end else if ((pattern[j] = c2) and (i <= Length(str)) or (pattern[j] = str[i])) then begin
inc(i);
inc(j);
end else begin
result := false;
exit;
end;

end;
end;

function Match(str, pattern: string): boolean;
var
f: boolean;
begin
f := RMatch(str, pattern, 1, 1);
result := f;
end;

end.


 
Leshuz ©   (2002-01-10 22:32) [6]

Отправил на мыло, ждите привета ;-)



Страницы: 1 вся ветка

Текущий архив: 2002.01.28;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.006 c
3-90207
chva
2001-12-22 00:42
2002.01.28
Рисование в заголовках DBGrid


14-90368
fliz
2001-12-04 14:57
2002.01.28
мне вот тут приколы прислали ...


6-90334
Di_wind
2001-11-06 16:27
2002.01.28
Книги.


1-90273
rey_wagner
2002-01-10 00:24
2002.01.28
Помогите с формами!!!


14-90367
M-A-B
2001-12-04 12:13
2002.01.28
SQL