Foxtable(狐表)用户栏目专家坐堂 → [求助]替换数字中的错误小数点


  共有2339人关注过本帖树形打印复制链接

主题:[求助]替换数字中的错误小数点

帅哥哟,离线,有人找我吗?
天一生水
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
[求助]替换数字中的错误小数点  发帖心情 Post By:2018/4/7 21:01:00 [只看该作者]

怎样替换数值中错误的小数点,有的是句号"。"、有的是全角"."。
比如:29844。9406%;  2.556 ;
但要保留中文字符中的句号。

Dim str As String = "你好。29844。9406%"
Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "    ")
msgbox(mc.count)

结果为:"你好。29844.9406%"

 回到顶部
帅哥哟,离线,有人找我吗?
wyz20130512
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1249 积分:9474 威望:0 精华:0 注册:2013/5/12 9:22:00
  发帖心情 Post By:2018/4/7 22:29:00 [只看该作者]

Dim str As String = "你好。29844。9406% Foxtable。44。97"
For i As Integer = 1 to str.length - 1
    If str.Chars(i) = "。" And IsNumeric(str.Chars(i-1)) Then
        msgbox("找到了!是第" & i+1 & "个字符" )
        str = str.remove(i,1).insert(i,".")
    End If
Next
Output.Show(str)

你好。29844.9406% Foxtable。44.97
[此贴子已经被作者于2018/4/7 22:35:50编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2018/4/7 22:40:00 [只看该作者]

谢谢朋友!
好几个点看不懂,向高手学习!

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/8 8:59:00 [只看该作者]

'''
Dim str As String = "你好。29844。9406% Foxtable。44。97"
str = System.Text.RegularExpressions.Regex.replace(str, "(?<=[0-9])。(?=[0-9])", ".")
msgbox(str)

 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2018/4/8 9:34:00 [只看该作者]

谢谢老师!
如果同时再替换全角".",是不是这样?
'''
Dim str As String = "你好。29844。9406% Foxtable。44。97"
str = System.Text.RegularExpressions.Regex.replace(str, "(?<=[0-9])。(?=[0-9])", ".").replace(str, "(?<=[0-9])(?=[0-9])", ".")
msgbox(str)

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/8 10:42:00 [只看该作者]

'''
Dim str As String = "你好。29844。9406% Foxtable。44。。.97"
str = System.Text.RegularExpressions.Regex.replace(str, "(?<=[0-9])[。.]+(?=[0-9])", ".")
msgbox(str)

 回到顶部