Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Регулярное выражение - не находит конец строки


Автор: vetalkov 9.9.2011, 20:33
не могу взять текст между Location: и концом строки


Код

buf := 'Location: http://www.site.com/
Content-Length: 211
Accept-Ranges: bytes';


Код

function redi (buf : string) : string;
var
RegExp: TRegExpr;
begin
  RegExp := TRegExpr.Create;
  RegExp.Expression := 'Location: (.*)'+ #13#10+'$?';

  if RegExp.Exec(buf) then
  begin
  buf := RegExp.Match[1];
  Result := buf;
  end else Result := 'не найдено';

  RegExp.Free;

end;


пробовал еще так
Код

  RegExp.Expression := 'Location: (.*)#13#10$?';

Автор: sCreator 10.9.2011, 09:17
А так не пробовал
Код

RegExp.Expression := 'Location: (.*)$';
Если правильно помню, то в регулярных выражениях $ это и есть конец строки.

Автор: omickron 11.9.2011, 15:06
Цитата(vetalkov @  9.9.2011,  20:33 Найти цитируемый пост)
  RegExp.Expression := 'Location: (.*)'+ #13#10+'$?';

Собственно, #13#10 - это и есть символы нового абзаца и конца строки. 
В регулярках конец строки проще обозначать '$'. sCreator, думаю, написал правильно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)