以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]字符问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=57240)

--  作者:pcxjxjhkw
--  发布时间:2014/9/21 17:46:00
--  [求助]字符问题
一字符串中可能含一个或几个空格,甚至包含连续空格。 想实现:将上述字符串被空格隔开的字符转换成数组。 如:1 2 3 4 58 6→1|2|3|4|58|6 谢谢了!
--  作者:有点甜
--  发布时间:2014/9/21 17:49:00
--  
Dim str As String = "1  2  3       4     58  6"
Dim reg As new System.Text.RegularExpressions.Regex("(?<= {1}) *")
str = reg.Replace(str, "").replace(" ", "|")
msgbox(str)

--  作者:pcxjxjhkw
--  发布时间:2014/9/21 17:51:00
--  
谢甜老师
--  作者:pcxjxjhkw
--  发布时间:2014/9/21 18:02:00
--  
甜老师,怎么不行呃?
--  作者:有点甜
--  发布时间:2014/9/21 18:03:00
--  
 不行的例子发出来
--  作者:lsy
--  发布时间:2014/9/21 18:29:00
--  
Dim str As String = "1      2  3 4   58 6"
For i As Integer = 999 To 1 Step - 1
    Dim s As New String(" ",i)
    str = str.Replace(s," ")
Next
MessageBox.Show(str.Replace(" ","|"))

--  作者:pcxjxjhkw
--  发布时间:2014/9/22 15:24:00
--  

甜老师,如果是数字字符串,测试没问题,但是文字的就不行哟。如

Dim str As String = "一 平     三     上    七     九                      百"
Dim reg As new System.Text.RegularExpressions.Regex("(?<= {1}) *")
str = reg.Replace(str, "").replace(" ", "|")
msgbox(str)

 

出现一个奇怪现象,上述代码在命令窗口执行没问题,但如果str来自一文本框,就不行了

[此贴子已经被作者于2014-9-22 15:28:38编辑过]

--  作者:有点甜
--  发布时间:2014/9/22 15:25:00
--  

 测试页一点问题都没有啊

 

Dim str As String = "一 平     三     上    七     九                      百"
Dim reg As new System.Text.RegularExpressions.Regex("(?<= {1}) *")
str = reg.Replace(str, "").replace(" ", "|")
msgbox(str)


--  作者:pcxjxjhkw
--  发布时间:2014/9/22 15:30:00
--  

Dim txt As WinForm.TextBox = e.Form.Controls("查找关键词")
Dim str As String = txt.Text
Dim reg As new System.Text.RegularExpressions.Regex("(?<= {1}) *")
str = reg.Replace(str, "").replace(" ", "|")
\'MessageBox.Show(str)
msgbox(str)

 

就不能达到目的

 

[此贴子已经被作者于2014-9-22 15:38:12编辑过]

--  作者:有点甜
--  发布时间:2014/9/22 15:43:00
--  
 例子发上来