Delphi中正则表达式之TPerlRegEx类的属性与方法(1) 查找2012-12-22 博客园 万一
//查找是否存在varreg: TPerlRegEx;beginreg := TPerlRegEx.Create(nil); reg.Subject := "CodeGear Delphi 2007 for Win32";reg.RegEx := "d"; if reg.Match thenShowMessage("找到了")elseShowMessage("没找到"); FreeAndNil(reg);end; //查找是否存在(方法2)varreg: TPerlRegEx;beginreg := TPerlRegEx.Create(nil); reg.Subject := "CodeGear Delphi 2007 for Win32";reg.RegEx := "d"; reg.Match; //执行查找 if reg.FoundMatch then//布尔变量 FoundMatch 会告诉我们查找有没有结果ShowMessage("找到了")elseShowMessage("没找到");FreeAndNil(reg);end; //显示找到的第一个varreg: TPerlRegEx;beginreg := TPerlRegEx.Create(nil); reg.Subject := "CodeGear Delphi 2007 for Win32";reg.RegEx := "d"; if reg.Match thenShowMessage(reg.MatchedExpression)//2elseShowMessage("没找到");FreeAndNil(reg);end; //分别显示找到的每一个和总数varreg: TPerlRegEx;num: Integer; //用 num 来计数beginreg := TPerlRegEx.Create(nil); reg.Subject := "CodeGear Delphi 2007 for Win32";reg.RegEx := "d"; num := 0;while reg.MatchAgain do//MatchAgain 是下一个beginShowMessage(reg.MatchedExpression); //将分别显示: 2 0 0 7 3 2Inc(num);end;ShowMessage(IntToStr(num)); //6 FreeAndNil(reg);end; //分别显示找到的每一个和总数(另一种写法)varreg: TPerlRegEx;num: Integer; //用 num 来计数beginreg := TPerlRegEx.Create(nil); reg.Subject := "CodeGear Delphi 2007 for Win32";reg.RegEx := "d"; num := 0;if reg.Match thenbeginrepeatShowMessage(reg.MatchedExpression); //将分别显示: 2 0 0 7 3 2Inc(num);until (not reg.MatchAgain);end;ShowMessage(IntToStr(num)); //6 FreeAndNil(reg);end; //目标字符串的位置与长度varreg: TPerlRegEx;beginreg := TPerlRegEx.Create(nil); reg.Subject := "CodeGear Delphi 2007 for Win32";reg.RegEx := "Delphi"; while reg.MatchAgain do//很明显: 本例只能找到一个结果beginShowMessage(reg.MatchedExpression); //找到的字符串: DelphiShowMessage(IntToStr(reg.MatchedExpressionOffset)); //它所在的位置: 10ShowMessage(IntToStr(reg.MatchedExpressionLength)); //它的长度: 6end; FreeAndNil(reg);end;