| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1398 人关注过本帖, 1 人收藏
标题:请教怎样在字符型字段中,提取阿拉伯数字?如"250ml"提取“250”
只看楼主 加入收藏
muyubo
Rank: 9Rank: 9Rank: 9
来 自:山东莱芜
等 级:蜘蛛侠
威 望:3
帖 子:471
专家分:1017
注 册:2011-3-6
结帖率:95.65%
收藏(1)
已结贴  问题点数:20 回复次数:14 
请教怎样在字符型字段中,提取阿拉伯数字?如"250ml"提取“250”
如题
搜索更多相关主题的帖子: 数字 阿拉伯 
2012-05-23 19:43
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9844
专家分:27213
注 册:2012-2-5
收藏
得分:2 
程序代码:
CMC="250ML"
CMC1=""
FOR I=1 TO LEN(CMC)
    CMC2=SUBSTR(CMC,I,1)
    CMC1=CMC1+IIF(BETWEEN(ASC(CMC2),48,57),CMC2,"")
ENDFOR
?CMC1
这只是其中的一种方法,这种方法关键在ASC(),因为字符型数字0-9的ASC()的返回值分别为48-57。根据大写字母A-Z的ASC()返回值分别为65-90,同样可以提取“250ML”中的“ML”
ISDIGIT( ) 函数 也可以达到同样的效果。


[ 本帖最后由 sdta 于 2012-5-23 19:59 编辑 ]

坚守VFP最后的阵地
2012-05-23 19:52
茵梦湖
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:31
帖 子:545
专家分:2180
注 册:2009-4-25
收藏
得分:2 

x="250ml-u178中国12378"

? chrtranc(x,chrtranc(x,"0123456789",""),"")

收到的鲜花
  • sdta2012-05-23 20:32 送鲜花  10朵   附言:我很赞同
2012-05-23 20:18
muyubo
Rank: 9Rank: 9Rank: 9
来 自:山东莱芜
等 级:蜘蛛侠
威 望:3
帖 子:471
专家分:1017
注 册:2011-3-6
收藏
得分:0 
原来有这么多方法可用,非常感谢二位!
2012-05-23 21:15
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:2 
如果仅仅是提取开始的数字,还可以直接用val()。
x="123ajiofdj"
?val(x)
显示123

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2012-05-23 21:19
taohua300
Rank: 12Rank: 12Rank: 12
来 自:光
等 级:贵宾
威 望:14
帖 子:1636
专家分:3906
注 册:2009-3-11
收藏
得分:2 
以下是引用sdta在2012-5-23 19:52:23的发言:

CMC="250ML"
CMC1=""
FOR I=1 TO LEN(CMC)
    CMC2=SUBSTR(CMC,I,1)
    CMC1=CMC1+IIF(BETWEEN(ASC(CMC2),48,57),CMC2,"")
ENDFOR
?CMC1
这只是其中的一种方法,这种方法关键在ASC(),因为字符型数字0-9的ASC()的返回值分别为48-57。根据大写字母A-Z的ASC()返回值分别为65-90,同样可以提取“250ML”中的“ML”
ISDIGIT( ) 函数 也可以达到同样的效果。
使用asc不太行
比如汉字
万一汉字的一部分正好在48-57之间呢
吃过亏
纯英文中检查其他乱字符
有些字符愣是没有查出来
用也要用lenc,substrc

个性太多,无法显示
2012-05-24 08:58
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:2 
回复 6楼 taohua300
没错
2012-05-24 09:41
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2215
专家分:3882
注 册:2007-4-27
收藏
得分:2 
路过留足,谢谢

只求每天有一丁点儿的进步就可以了
2012-05-24 12:34
ilikeflash
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:148
专家分:186
注 册:2011-4-6
收藏
得分:2 
学无止境,谢谢啦
2012-05-24 15:57
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:2 
程序代码:
x="250ml-u178中国12378"
y = ""
FOR nIndex = 1 TO LENC(x)
    cChar = SUBSTRC(x, nIndex, 1)
    ? cChar
    IF ISDIGIT(cChar)
        y = y + cChar
    ENDIF
NEXT
? "提取结果:", y

授人以渔,不授人以鱼。
2012-05-24 16:18
快速回复:请教怎样在字符型字段中,提取阿拉伯数字?如"250ml"提取“250” ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018271 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved