设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2517|回复: 8
打印 上一主题 下一主题

[模块/函数] 求一关于不特定字符、字符串中之间取数字的问题。

[复制链接]
跳转到指定楼层
1#
发表于 2014-8-30 19:22:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 fnsmydyang 于 2014-8-30 19:25 编辑

求助各位大侠:       一个关于取数值的问题
字符串:ab123456cbss231     取值结果:123456     字符串,字符不特定

              sab132156dfjdskljfldks4587      取值结果:132156     字符串,字符不特定


             谢谢各位指教。




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅
推荐
发表于 2014-8-31 16:58:15 | 只看该作者
本帖最后由 todaynew 于 2014-8-31 17:08 编辑
fnsmydyang 发表于 2014-8-30 19:50
自己写了一段代码,能解决,请指教
Public Function 订单ID(StrB As Variant) As Variant
Dim j As Integ ...

此类问题宜用正则表达式处理之
http://www.accessoft.com/article-show.asp?id=9320

这个正则表达式:^\D+(\d+)中提取$1即可。也就是开始是若干非数字字符,然后是若干数字字符,将这个数字字符提取到正则变量中。小括号定义变量,从左到右分别是变量$1、$2....
回复 支持 1 反对 0

使用道具 举报

2#
 楼主| 发表于 2014-8-30 19:50:44 | 只看该作者
自己写了一段代码,能解决,请指教
Public Function 订单ID(StrB As Variant) As Variant
Dim j As Integer
Dim I As Integer
Dim N As Integer
Dim StrTemp
Dim StrID
   
    If Len(StrB) > 0 Then
       N = Len(StrB)
       For I = 1 To N
           If IsNumeric(Mid(StrB, I, 1)) Then
              j = I
              Exit For
           End If
       Next
       For I = j To N
           If IsNumeric(Mid(StrB, I, 1)) Then
              StrTemp = StrTemp & Mid(StrB, I, 1)
           Else
              Exit For
           End If
       Next
       订单ID = StrTemp
    End If
   
End Function

点击这里给我发消息

3#
发表于 2014-8-31 05:15:50 来自手机 | 只看该作者
fnsmydyang 发表于 2014-8-30 19:50
自己写了一段代码,能解决,请指教
Public Function 订单ID(StrB As Variant) As Variant
Dim j As Integ ...

不错,!!!

点击这里给我发消息

4#
发表于 2014-8-31 05:19:18 来自手机 | 只看该作者
第2个循环是否可以用val(mid(str,j))取得?看看行吗?

点击这里给我发消息

5#
发表于 2014-8-31 05:21:03 来自手机 | 只看该作者
第1句As Integer比较好,因为返回的是数字。

点击这里给我发消息

6#
发表于 2014-8-31 05:22:38 来自手机 | 只看该作者
strB As string,可能会快点?

点击这里给我发消息

7#
发表于 2014-8-31 05:30:16 来自手机 | 只看该作者
用正则也可以,好象\d+
9#
 楼主| 发表于 2014-9-6 13:33:29 | 只看该作者
几天没上网,有这么多的大侠们指点,先谢谢各位楼主们了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-9 02:15 , Processed in 0.099865 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表