Delphi中正则表达式语法(9) 临界匹配 - 预搜索与反向预搜索2012-12-20 万一
//匹配右边varreg: TPerlRegEx;beginreg := TPerlRegEx.Create(nil); reg.Subject := "Delphi 6; Delphi 7; Delphi 2007; Delphi Net";reg.RegEx := "Delphi (?=2007)"; // ?=reg.Replacement := "◆";reg.ReplaceAll; ShowMessage(reg.Subject); //返回: Delphi 6; Delphi 7; ◆2007; Delphi Net FreeAndNil(reg);end; //不匹配右边varreg: TPerlRegEx;beginreg := TPerlRegEx.Create(nil); reg.Subject := "Delphi 6; Delphi 7; Delphi 2007; Delphi Net";reg.RegEx := "Delphi (?!2007)"; // ?!reg.Replacement := "◆";reg.ReplaceAll; ShowMessage(reg.Subject); //返回: ◆6; ◆7; Delphi 2007; ◆Net FreeAndNil(reg);end; //匹配左边varreg: TPerlRegEx;beginreg := TPerlRegEx.Create(nil); reg.Subject := "111, 222, ¥333, ¥444";reg.RegEx := "(?<=¥)d{3}"; // ?<=reg.Replacement := "◆";reg.ReplaceAll; ShowMessage(reg.Subject); //返回: 111, 222, ¥◆, ¥◆ FreeAndNil(reg);end; //不匹配左边varreg: TPerlRegEx;beginreg := TPerlRegEx.Create(nil); reg.Subject := "111, 222, ¥333, ¥444";reg.RegEx := "(?<!¥)d{3}"; // ?<!reg.Replacement := "◆";reg.ReplaceAll; ShowMessage(reg.Subject); //返回: ◆, ◆, ¥333, ¥444FreeAndNil(reg);end;