有点难度的替换字符串,该如何处理
有点难度的替换字符串
字符串格式如下:
10.14.18.5 E9 10.14.18.5 219.150.150.150 00.E0.5C.23.0A
想变换成下面格式(注意,上面空格部分不等,有的3个有的6个)
10.14.18.5,E9,10.14.18.5,219.150.150.150,00-E0-5C-23-0A
或
00-E0-5C-23-0A,10.14.18.5,E9,10.14.18.5,219.150.150.150
我不知道怎么解决不影响10.14.的情况下把00.E0.中 ". "换成 "- "
空格不等的情况下换成一个 ", "有没有更优化的办法?
------解决方案--------------------
Dim s As String
s = "10.14.18.5 E9 10.14.18.5 219.150.150.150 00.E0.5C.23.0A "
Dim arr, tmp As String
Do While InStr(1, s, " ") > 0
s = Replace(s, " ", " ")
Loop
s = Replace(s, " ", ", ")
arr = Split(s, ", ")
arr(UBound(arr)) = Replace(arr(UBound(arr)), ". ", "- ")
s = Join(arr, ", ")
MsgBox s
字符串格式如下:
10.14.18.5 E9 10.14.18.5 219.150.150.150 00.E0.5C.23.0A
想变换成下面格式(注意,上面空格部分不等,有的3个有的6个)
10.14.18.5,E9,10.14.18.5,219.150.150.150,00-E0-5C-23-0A
或
00-E0-5C-23-0A,10.14.18.5,E9,10.14.18.5,219.150.150.150
我不知道怎么解决不影响10.14.的情况下把00.E0.中 ". "换成 "- "
空格不等的情况下换成一个 ", "有没有更优化的办法?
------解决方案--------------------
Dim s As String
s = "10.14.18.5 E9 10.14.18.5 219.150.150.150 00.E0.5C.23.0A "
Dim arr, tmp As String
Do While InStr(1, s, " ") > 0
s = Replace(s, " ", " ")
Loop
s = Replace(s, " ", ", ")
arr = Split(s, ", ")
arr(UBound(arr)) = Replace(arr(UBound(arr)), ". ", "- ")
s = Join(arr, ", ")
MsgBox s