用正则表达式获取指定的字符串续_取出所有符合要求的字符串
在上一篇用正则表达式获取指定的字符串中,只是简单处理了下符合要求的字符串,假如有多个符合要求的自私办呢,本来懒得弄,后来还是有一网友也问了同一个问题,如是试了一下,用递归
function GetNextMatch(AValue, APattern: string): string;
var
i: Integer;
Regex: TRegex;
s: string;
begin
Regex := TRegex.Create(APattern, [roIgnoreCase]);
for i := 0 to Regex.Matches(AValue).Count -1 do
begin
Result := Regex.Matches(AValue).Item[i].Value;
GetNextMatch(Result, APattern);
end;
end;
调用 GetNextMatch('begindklewjsabegindiekdjekdenickdkekkdiuiuijujenddkeidkkdend', '(?<=begin)([.\S\s]*)(?=end)');
结果:
dklewjsabegindiekdjekdenickdkekkdiuiuijujenddkeidkkd,
diekdjekdenickdkekkdiuiuijuj