• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

Проблема С Regexpr Регулярное Выражение

  • Автор темы Автор темы Sascha
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Sascha

Заместитель Администратора
Команда форума
Администратор
Регистрация
9 Май 2015
Сообщения
1,548
Баллы
155
Вот к примеру есть текст, с которого мне нужно выделить целиком название :
Код:
ROBERT GLASPER - RECKONER (AUDIO _ LIVE AT CAPITOL STUDIOS _ 2014).MP3
вот кусок текста:
Код:
000043  KRAFTKLUB-ICH_WILL_NICHT_NACH_BE AA    C        01:00:17:11 01:00:33:23 10:13:49:01 10:14:05:13
*FROM CLIP NAME:  ROBERT GLASPER - RECKONER (AUDIO _ LIVE AT CAPITOL STUDIOS _ 20
*14).MP3.NEW.01
выражение по которому я проверяю :
Код:
.*?([ -_A-Z]+.MP3
в конце что получается :
Код:
*14).MP3

Помогите найти решение, я уже запутался, ничего не получается :(
 
Я думаю ты составил не кровельный шаблон,так как не ловит все символы.
 
Код:
000059  SRL012_090_ROUND_AND_ROUND_NOVOX NONE  C        01:00:00:01 01:00:05:20 10:20:47:13 10:20:53:07
AUD   3     4
*FROM CLIP NAME:  SRL012_090_ROUND AND ROUND_NOVOX15SEC.MP3
вот пробуй, етот работает без проблем
 
Решил пока так, исправьте код если что не правильно

Код:
unit Unit1;

interface

uses
  System.SysUtils,
  System.Classes,
  Vcl.Controls, Vcl.Forms, Vcl.StdCtrls, RegExpr;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
     Button1: TButton;
    Memo2: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    procedure per(Sender: TObject);
    { Public declarations }
  end;

var
  Form1: TForm1;
  edl: string;

implementation

{$R *.dfm}

function Zamena(stroka: string): string;
begin
  edl := StringReplace(edl, ' ' + #13#10'*', '', [rfReplaceAll, rfIgnoreCase]);
end;

procedure TForm1.per(Sender: TObject);
begin
  edl := Memo1.Text;
  Zamena(edl);
  Memo1.Text := edl;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  r: TRegExpr;
begin
  Memo2.Clear;
  per(Memo1);
  r := TRegExpr.Create;
  r.Expression :=
    '(\d{2}:\d{2}:\d{2}:\d{2}) (\d{2}:\d{2}:\d{2}:\d{2}) (\d{2}:\d{2}:\d{2}:\d{2}) (\d{2}:\d{2}:\d{2}:\d{2}).*?([ -_A-Z]+.MP3)';
  if r.Exec(Memo1.Text) then
  begin
    repeat
      Memo2.Lines.Add('1:   ' + r.Match[1]);
      Memo2.Lines.Add('2:   ' + r.Match[2]);
      Memo2.Lines.Add('3:   ' + r.Match[3]);
      Memo2.Lines.Add('4:   ' + r.Match[4]);
      Memo2.Lines.Add('5:   ' + r.Match[5]);
    until not r.ExecNext;
  end;
end;

end.
 
Для нормальной работы в поток засунь,а так все нормально,лично мое мнение.
 
Статус
Закрыто для дальнейших ответов.
Вверх Снизу