PDA

Просмотр полной версии : [Помогите!] Парсируем


Nugno
15.07.2011, 12:30
Вот у меня такая проблемма, парсирует кредиты и уридиум и то, через раз..
Но самое главное - не парсируеться ид.

Reg.Expression := 'cred=(.*?)&xcred=(.*?)&amp'';
if Reg.Exec(S) then ListBox1.Items.Add('Credits: '+Reg.Match[1]+' | Uridium: '+Reg.Match[2]);
Reg.Expression := 'uid=(.*?)&amp';
if Reg.Exec(S) then ListBox1.Items.Add('ID: '+Reg.Match[3]);

Почему я сделал в разные строки ? Потому что, когда я ставлю ид в одну строку с кредитами и уридиумом - пишет в %. А там, не пишет сам ид..
Пробовал
Reg.Expression := 'uid=(.*?)&amp';
if Reg.Exec(S) then ListBox1.Items.Add('ID: '+Reg.Match[1]); (Без кредитов и уридиума, все ровно не берет =(

Mebius
15.07.2011, 12:38
uid всегда число!
Reg.Expression := 'uid=(\d+)&amp';
так попробуй

Nugno
15.07.2011, 12:51
1-ое: Объясни почему, пожалуйста.
2-ое: Все роно, в лист боксе дает ИД пустой

Mebius
15.07.2011, 13:36
1-ое: Объясни почему, пожалуйста.
2-ое: Все роно, в лист боксе дает ИД пустой

1-ое, читай документацию к регуляркам, \d -числовой символ.
2-ое. судя по куску исходника ты в ДО логинешься.

попробуй сначала не сразу первую группу вставлять, а полностью вхождение.
или

uid=(\d+)&rank=

а вообще скачай RegexBuddy 3 и в ней тестируй регулярки.