4个回答
展开全部
解决这个问题有两种办法:
1、用正则表达式,标记出所有数字,然后取出。
//正则对象
var
uChecker: TRegExpr;
//创建正则,并装载匹配规则。
uChecker:= TRegExpr.Create;
uChecker.Expression:= '\d[\.\d]*';
if uChecker.Exec(r_Name) then
sStr:= uChecker.MatchPos[1]; //匹配结果
2、用字符串替换函数将所有字母替换
procedure TForm1.Button1Click(Sender: TObject);
const
c_Str = 'abc423sdfbc'; //这常量是你要处理的字符串,可以自行修改
var
i: Integer;
sStr: string;
begin
//将所有字母替换为空
for i := ord('A') to ord('Z') do
sStr:= StringReplace(c_Str, Char(i), '', [rfReplaceAll]);
for i := ord('a') to ord('z') do
sStr:= StringReplace(sStr, Char(i), '', [rfReplaceAll]);
ShowMessage(Format('字符串%s处理后为:%s', [c_Str, sStr]));
end;
自己选择吧。PS:下面这个帖子的分你还没给呢。
http://zhidao.baidu.com/question/210624767.html
1、用正则表达式,标记出所有数字,然后取出。
//正则对象
var
uChecker: TRegExpr;
//创建正则,并装载匹配规则。
uChecker:= TRegExpr.Create;
uChecker.Expression:= '\d[\.\d]*';
if uChecker.Exec(r_Name) then
sStr:= uChecker.MatchPos[1]; //匹配结果
2、用字符串替换函数将所有字母替换
procedure TForm1.Button1Click(Sender: TObject);
const
c_Str = 'abc423sdfbc'; //这常量是你要处理的字符串,可以自行修改
var
i: Integer;
sStr: string;
begin
//将所有字母替换为空
for i := ord('A') to ord('Z') do
sStr:= StringReplace(c_Str, Char(i), '', [rfReplaceAll]);
for i := ord('a') to ord('z') do
sStr:= StringReplace(sStr, Char(i), '', [rfReplaceAll]);
ShowMessage(Format('字符串%s处理后为:%s', [c_Str, sStr]));
end;
自己选择吧。PS:下面这个帖子的分你还没给呢。
http://zhidao.baidu.com/question/210624767.html
展开全部
我给你说个思路,你在几写代码吧
你列个循环,一个个字母在0~9里面对比,在那个0~9的数组里的,你保存到一个串里
就可以了!~
你列个循环,一个个字母在0~9里面对比,在那个0~9的数组里的,你保存到一个串里
就可以了!~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
str := 'abc056'
s:='';
for i:=1 to length(str) do
begin
if str[i] in ['0'..'9'] then
s:=s+str[i];
end;
s:='';
for i:=1 to length(str) do
begin
if str[i] in ['0'..'9'] then
s:=s+str[i];
end;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
delphi 不会,但是正则表达式通用。你查查delphi 的正则表达式
匹配字符串="~[0,9]*$";
匹配字符串="~[0,9]*$";
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询