用以下函数可以非常方便的查找单行或者多行字符串种符合条件的字串。
//单行模式或多行模式————字符串正则匹配返回第n个符合条件的字符串
function getNstrByReg(strSource, strReg: string; n: integer; boolM: boolean): string;
var
r: TRegExpr;
sRes: string;
i: integer;
begin
r := TRegExpr.Create;
r.Expression := strReg;
r.ModifierI := true;
r.ModifierM := boolM;
//r.ModifierStr:=;
sRes := '';
i := 0;
if r.Exec(strSource) then
repeat
// Match[0]表示整个表达式的匹配结果,之后的数组元素则代表括号中的匹配结果
// 例如 输入333 :1, :3,
// r.Expression := ':(\S+),';
// sRes := r.Match[0]; 则输出 :1 :3
// sRes := r.Match[1]; 则输出 1 3
sRes := r.Match[0];
if i = n then
break;
i := i + 1;
until not r.ExecNext;
r.Free;
Result := sRes;
end;