研究了半天还是没明白正则怎么写,比如我想获取qvod播放地址中的文件名
qvod://235928716|6A6329DA3ECF3DC2A5B299B5A98E8B3BDBD0877E|女拳粤语01.rmvb|我是用的regexpr,请问大侠如何获取“女拳粤语01.rmvb" ?
qvod://235928716|6A6329DA3ECF3DC2A5B299B5A98E8B3BDBD0877E|女拳粤语01.rmvb|我是用的regexpr,请问大侠如何获取“女拳粤语01.rmvb" ?
SL:= TStringList.Create;
SL.Delimiter:= '|';
SL.DelimitedText:= 'qvod://235928716|6A6329DA3ECF3DC2A5B299B5A98E8B3BDBD0877E|女拳粤语01.rmvb|';
for i:= 0 to SL.Count-1 do
if pos('rmvb',SL.Strings[i]) > 0 then showmessage(SL.Strings[i]);再者直接取 SL.Strings[2];
qvod://\d*?\|[a-zA-Z0-9]*?\|(.*?)\|
uses
RegularExpressions;procedure TMainForm.Button1Click(Sender: TObject);
var
Str: string;
Reg: TRegEx;
Match: TMatch;
begin
Str := 'qvod://235928716|6A6329DA3ECF3DC2A5B299B5A98E8B3BDBD0877E|女拳 粤语01.rmvb|' + #13#10 +
'qvod://235928716|6A6329DA3ECF3DC2A5B299B5A98E8B3BDBD0877E|女拳 粤语02.rmvb|'; Reg := TregEx.Create('qvod://\d*?\|[a-z0-9]*?\|(.*?)\|', [roIgnoreCase]);
Match := Reg.Match(Str);
while Match.Success do
begin
Memo1.Lines.Add(match.Groups[1].Value);
Match := Match.NextMatch;
end;
end;
uses
RegExpr;procedure TForm1.Button1Click(Sender: TObject);
var
reg: TRegExpr;
begin
reg := TRegExpr.Create;
reg.InputString := 'qvod://235928716|6A6329DA3ECF3DC2A5B299B5A98E8B3BDBD0877E|女拳 粤语01.rmvb|' + #13#10 +
'qvod://235928716|6A6329DA3ECF3DC2A5B299B5A98E8B3BDBD0877E|女拳 粤语02.rmvb|\b';
reg.Expression := '.*?\|.*?\|(.*?)\|';
if reg.Exec then
begin
repeat
Memo1.Lines.Add(reg.Match[1]);
until not reg.ExecNext;
end;
end;