Помогите плз... спарсить вот эти 2 переменные(выделены красным цветом) и знаести их в переменные... onclick="play('pbutton562','1','4910','50eefe98') Проблема заключается в множестве кавычек и запятых
C++ Builder. AnsiString + TStringList. PHP: while(s.Pos("onclick=\"play('pbutton")) { s.Delete(1, s.Pos("onclick=\"play('pbutton") + 22 - 1); s1 = s; s2 = s; s1.SetLength(s1.Pos("'") - 1); s2.Delete(1, s2.Pos(",")); s2.Delete(1, s2.Pos(",")); s2.Delete(1, s2.Pos(",") + 1); s2.SetLength(s2.Pos("'") - 1); sl1->Add(s1); sl2->Add(s2); }
Не думал что запятые теперь мешают работать. А кавычки надо заменить на такой код #39 и все станет легче. Надо сначала написать на каком языке(Это кажется в правилах раздела сказано) Вот код: Code: var p,p1:integer; str:string; pn,pn1:integer; str1:string; begin {Достаем первую переменную} p:=pos('onclick="play('+#39+'pbutton'+#39,Memo1.Text)+23; str:=copy(Memo1.Text,p,10); p1:=pos(#39,str); Delete(str,p1,10); {Занесли первую перменную в str} {Достаем вторую переменную} pn:=pos(#39+','+#39+'1'+#39+','+#39+'4910'+#39+','+#39,Memo1.Text)+14; str1:=copy(Memo1.Text,pn,15); pn1:=pos(#39,str1); Delete(str1,pn1,10); Memo1.Lines.Add('Первая переменная='+str+'|Вторая перменная='+str1); {Занесли вторую перменную в str1} end; Для первой переменной будет работать 100%. Для второй тоже только в этой строчке onclick="play('pbutton562','1','4910','50eefe98') так как мне кажется что '1','4910' тоже переменные, для 100% работы нужно больше кода...
скажу логику, а потом в руки учебник или онлайн мануал о работе со строками ну или регулярки. в начале приводишь к виду 'pbutton562','1','4910','50eefe98' заменяешь ',' на ' потом достаешь список все что между одинарными ковычками. ну теперь 0 элемент pbutton, 3-другая переменная
ТС, прочитай вот эту статью http://www.delphi.int.ru/articles/42/ твое регулярное выражение к статье, наверное, будет такое Code: pbutton(\d+).+'(A-Za-z0-9]+)'\) по крайней мере, я его протестировал - вроде работает =)