VB6实现大空间漫游

VB6实现大空间漫游,vb6,Vb6,嘿,大家好,我正在尝试用一个空格来替换文本之间的大空格。我现在的输出如下所示: 5964215"> This is just the first example of the spaces 5964478"> This would be the 2nd example of showing how many spaces this thing has in each sentence. 5964494"> 这来自一个文本框,

嘿,大家好,我正在尝试用一个空格来替换文本之间的大空格。我现在的输出如下所示:

5964215">

        This is just the first example of the spaces
    5964478">

        This would be the 2nd example of showing how many spaces this thing has in each sentence.
    5964494">
这来自一个文本框,它有多行为true。这里是当它没有多行为真时的样子

我似乎无法让空间消失!顺便说一句,如果这有什么不同的话,这个文本是来自一个网页


David

根据MvanGeest的建议,这里有一些VB代码来替换空格块:

Sub test()
    Dim x As String, y As String
    x = "abcd       defg             1233"
    Dim re As New RegExp
    re.Pattern = "\s+"
    re.Global = True
    y = re.Replace(x, " ")
    Debug.Print y
End Sub

若要使其正常工作,必须将对Microsoft VBScript正则表达式的引用添加到项目中

根据MvanGeest的建议,这里有一些VB代码来替换空格块:

Sub test()
    Dim x As String, y As String
    x = "abcd       defg             1233"
    Dim re As New RegExp
    re.Pattern = "\s+"
    re.Global = True
    y = re.Replace(x, " ")
    Debug.Print y
End Sub

若要使其正常工作,必须将对Microsoft VBScript正则表达式的引用添加到项目中

假设不支持正则表达式,为什么不设置一个简单的状态机,在找到空间时将状态设置为1,在遇到非空间时将状态设置为0。当state=0时,您可以逐字符移动字符,因此每个空间系列只能复制1个空间。

假设不支持正则表达式,为什么不设置一个简单的状态机,在找到空间时将state=1,在遇到非空间时将state=0。当state=0时,您可以逐个字符移动字符,因此每个空间序列只能复制1个空间。

同样,如果没有正则表达式,您可以尝试以下操作

str = "long       text           with         spaces     "
i = LenB(str)
str = Replace(str, "  ", " ")
Do While LenB(str) <> i
  i = LenB(str)
  str = Replace(str, "  ", " ")
Loop

当然,这段代码可以针对长空间序列进行优化,但它也可能是您所需要的全部

此外,假设没有正则表达式,您可以尝试以下操作

str = "long       text           with         spaces     "
i = LenB(str)
str = Replace(str, "  ", " ")
Do While LenB(str) <> i
  i = LenB(str)
  str = Replace(str, "  ", " ")
Loop

当然,这段代码可以针对长空格序列进行优化,但它也可能是您所需要的全部

您只想将多余的空格减少到一个空格?您是否尝试过在文本框中循环并替换空格?请使用正则表达式s/+//g。VB6中没有正则表达式?当然不是,是1998年的。唉,你为什么还在用VB6?VB.NET非常容易启动和运行,您可以使用一个巨大的库。在这一点上,使用VB6真的很幼稚。你只是想把过多的空格减少到一个空格?您是否尝试过在文本框中循环并替换空格?请使用正则表达式s/+//g。VB6中没有正则表达式?当然不是,是1998年的。唉,你为什么还在用VB6?VB.NET非常容易启动和运行,您可以使用一个巨大的库。在这一点上,使用VB6真的很幼稚。所以VB6中有正则表达式,你只需要用一个秘密咒语来召唤它们。我承认,Perl的魔力还远远不够,但是使用一种更新的编程语言@StealthRT会不会更容易呢?。。。像Perl这样的更新版本是1987年的吗?我的意思是说Perl魔术实际上比这里应用的要黑暗和可怕得多。尽管如此,我还是一个Perl爱好者,可能会徒劳地为它辩护,说WP上Perl的稳定发布字段是2010,而VisualBasic的是1998。我并不是要为此挑起一场战争,我认为每个人都应该使用他们喜欢的语言,但我也要接受一个事实,即语言越老,看似“简单”的任务就变得越困难。@MvanGeest:谢谢你的投票,我应该补充一点,我确实更喜欢Perl而不是VB6,但我也不喜欢圣战。所以VB6中有正则表达式,你只需要用秘密咒语召唤他们。我承认,Perl的魔力还远远不够,但是使用一种更新的编程语言@StealthRT会不会更容易呢?。。。像Perl这样的更新版本是1987年的吗?我的意思是说Perl魔术实际上比这里应用的要黑暗和可怕得多。尽管如此,我还是一个Perl爱好者,可能会徒劳地为它辩护,说WP上Perl的稳定发布字段是2010,而VisualBasic的是1998。我并不是要为此挑起一场战争,我认为每个人都应该使用他们喜欢的语言,但我也要接受一个事实,那就是语言越老,看似“简单”的任务就变得越困难。@MvanGeest:谢谢你的投票,我应该补充一点,我确实更喜欢Perl而不是VB6,但我不喜欢圣战,或者。反复重复错误的神话不会使它变得更真实。反复重复错误的神话不会使它变得更真实。替换意味着str,2个空格,1个空格替换意味着str,2个空格,1个空格