以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何用正则替换掉小数点后全部为0的字符?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=48576)

--  作者:苍风霁月
--  发布时间:2014/4/1 10:28:00
--  如何用正则替换掉小数点后全部为0的字符?
如5.0g,5.00g,5.000g.....全部整成5g,而5.04g这类数据不变?
[此贴子已经被作者于2014-4-1 10:32:42编辑过]

--  作者:lsy
--  发布时间:2014/4/1 10:36:00
--  
在数值列中,本来就是你要求的显示方式。
--  作者:苍风霁月
--  发布时间:2014/4/1 10:37:00
--  

全部是在字符串中的


--  作者:lsy
--  发布时间:2014/4/1 10:41:00
--  

DataColChanged

If e.DataCol.Name = "第四列" AndAlso e.DataRow.IsNull(e.DataCol) = False Then
    e.DataRow(e.DataCol) = Val(e.DataRow(e.DataCol))
End If

 

 

If e.DataCol.Name = "第四列" AndAlso e.DataRow.IsNull(e.DataCol) = False Then
    e.DataRow(e.DataCol) = Val(e.DataRow(e.DataCol).Split("g")(0)) & "g"
End If

[此贴子已经被作者于2014-4-1 10:54:54编辑过]

--  作者:有点甜
--  发布时间:2014/4/1 10:45:00
--  
Dim data As String = "2.250g"
Dim reg As new System.Text.RegularExpressions.Regex("[0]+g{1}|\\.{1}[0]+g{1}")
Dim result = reg.Replace(data, "")
msgbox(result)

--  作者:Bin
--  发布时间:2014/4/1 10:46:00
--  
Dim str As String = "5.000000040"
Dim s As String = System.Text.RegularExpressions.Regex.match(str,"[0-9.]+[1-9.]+").Tostring()
MessageBox.show(s.trim("."))

--  作者:Bin
--  发布时间:2014/4/1 10:51:00
--  
Dim str As String = "5.000000400g"

Dim s As String = System.Text.RegularExpressions.Regex.match(str,"[0-9.]+[1-9.]+").Tostring()

MessageBox.show(s.trim(".") & "g")


--  作者:有点甜
--  发布时间:2014/4/1 10:53:00
--  

或者

 

Dim data As String = "2.250g, 9.800g,1.000g"
Dim reg As new System.Text.RegularExpressions.Regex("[0]+(?=g{1})|\\.{1}[0]+(?=g{1})")
Dim result = reg.Replace(data, "")
msgbox(result)


--  作者:lsy
--  发布时间:2014/4/1 10:58:00
--  

正则表达式,确实是好。

如果没掌握,就没办法灵活运用,老得指望别人。

狐表的代码,可以活学活用。