例如我想提取 "赫赫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
怎么实现??
我要得到的数据是:S001K-322、J453K-345、B456K-456、T456K-909、T555K-555
怎么实现??
解决方案 »
- TListView的问题
- socket 错误
- cxGuid中的cell如何同时有checkBox和buttonEdit
- DELPHI自带例子Demos\MIDAS\Pooler(李维《系统篇》中关于Session Pooling)中2个问题?
- 复制粘贴问题
- 请问怎么样才能用TTS使电脑发中文,我就要它发中文,不强求中英文都能发!!!
- 我怎么安装不了delphi8???
- 怎样传递TDBGrid到DLL中
- 有关打开HTML HELP 帮助文件中的起始页的定位
- 如何将query中的内容输出到文本文件,然后还能将该文本文件再导入进来?急急急!!!!!!!!!!!
- delphi 怎么用wmi??
- 20分问题。在查询页面上如何实现自动查询并分析结果
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;
EXPR_STR: string = '\s*[S|J|B|T][0-9][0-9][0-9][K][-][0-9][0-9][0-9]';