| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 692 人关注过本帖
标题:求一种特殊字符串截取语句
只看楼主 加入收藏
ictest
Rank: 2
等 级:论坛游民
帖 子:224
专家分:77
注 册:2010-2-17
结帖率:75%
  已结贴   问题点数:10  回复次数:6   
求一种特殊字符串截取语句
我在读取一个文本文件固定位置时,得到一种字符串,形状如下:
0V@2V
0uA@1MA
398.297327uA@1MA
0.974035V@2V
1000V@2V
-54.024479V@2V
0.537198V@2V

目前想光提取前面的数值,例如:

0V@2V                                   0
0uA@1MA                                 0
398.297327uA@1MA                        398.297327
0.974035V@2V            提取成==>       0.974035
1000V@2V                                1000
-54.024479V@2V                          -54.024479
0.537198V@2V                            0.537198


这种通用的字符串截取语句怎么写?


[此贴子已经被作者于2018-2-28 11:35编辑过]

2018-02-28 11:27
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:220
帖 子:4264
专家分:26006
注 册:2008-10-15
  得分:2 
一行一行的使用 val 函数就可以了。

授人于鱼,不如授人于渔
早已停用QQ了
2018-02-28 13:23
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:909
专家分:5237
注 册:2015-8-10
  得分:0 
你始终是字符串的处理都搞不清楚,一直在这样的问题上纠结……
2018-02-28 14:13
xyxcc177
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:145
专家分:990
注 册:2017-7-8
  得分:2 
程序代码:

Rem 用正则解决这个问题,首先引用Microsoft VBScript Regular Expressions 5.5
Dim exp As New RegExp
Dim strReg As String
strReg = "[0-9.-]+"
exp.Global = True
exp.Pattern = strReg
Dim mach As MatchCollection
Set mach = exp.Execute("-34234.33ffdfj")
 
MsgBox mach(0).Value

Rem  如果是取多个可以如下:

Set mach = exp.Execute("-34234.33ffdfjFJFJ3242,EWRW0.2344")
Dim i As Integer
 For i = 0 To mach.Count - 1
  MsgBox mach(i).Value
 Next


[此贴子已经被作者于2018-2-28 18:11编辑过]

2018-02-28 18:07
xyxcc177
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:145
专家分:990
注 册:2017-7-8
  得分:2 
你这个@后面还有一个数字,用替换比较好
程序代码:

Dim exp As New RegExp
Dim strReg As String
strReg = "[a-zA-Z]+@\d+\w+"
exp.Global = True
exp.Pattern = strReg
Dim mach As MatchCollection
'Set mach = exp.Execute("0uA@1MA")
Dim str As String
str = exp.Replace("23423Ad@9jjl", "")
MsgBox str


[此贴子已经被作者于2018-2-28 18:27编辑过]

2018-02-28 18:19
wds1
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:23
帖 子:250
专家分:1371
注 册:2016-3-10
  得分:2 
判首字符如果是数字,之后使用val函数。
判断的作用:如果首字符不是数字,他也会返回0,排除这种特例。



[此贴子已经被作者于2018-3-1 15:16编辑过]

2018-03-01 11:19
suzhanpeng
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:45
专家分:168
注 册:2016-9-28
  得分:2 
前面逐行读取就不说了
后面处理如下:
Dim a As Integer, b As String, c As String, i As Integer
a = Len(字符串)
For i = 1 To a
    b = Mid(字符串, i, 1)
    If IsNumeric(b) = True Or b = "-" Or b = "." Then
        c = c + b
    Else
        Exit For
    End If
Next
MsgBox c

[此贴子已经被作者于2018-3-1 15:41编辑过]

2018-03-01 15:38







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

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