读书人

怎么使用正则表达式提取符合条件的数据

发布时间: 2012-04-11 17:42:33 作者: rapoo

如何使用正则表达式提取符合条件的数据
例如我想提取 "赫赫S001K-3222 J453K-345、Z444K-444ABCB456K-456dT456K-9099 ST555K-555嘻嘻SSS" 这个字符串里的特定数据

提取原则:首字符以S、J、B、T开头,后面跟三位数字,再后面是K,然后是连字符- ,最后又是三位数字
我要得到的数据是:S001K-322、J453K-345、B456K-456、T456K-909、T555K-555
怎么实现??

[解决办法]
\s*[S/J/B/T][0-9][0-9][0-9][K][-][0-9][0-9][0-9]
[解决办法]
procedure TForm1.Button1Click(Sender: TObject);
const
EXPR_STR: string ='[S|J|B|T][0-9]{3}[K][-][0-9]{3}';
EXAMPLE_STR: string ='赫赫S001K-3222 J453K-345、Z444K-444ABCB456K-456dT456K-9099 ST555K-555嘻嘻SSS';
var
RegExpr: TRegExpr;
i:integer;
str:string;
begin
str:='';
RegExpr := TRegExpr.Create;
try
RegExpr.Expression := EXPR_STR;
i:=RegExpr.SubExprMatchCount;
if RegExpr.Exec(EXAMPLE_STR) then
begin
repeat
str:=str+RegExpr.Match[0]+',';
until not RegExpr.ExecNext;
showmessage(str);
end;
finally
FreeAndNil(RegExpr);
end;
end;

读书人网 >.NET

热点推荐