vbScript игнорирует много пробелов после разделения

Когда я разделяю строку на много пробелов, есть ли способ пропустить пробелы?

Пример строки ниже:

Lorem                            ipsum dolor sit amet, consectetur
             adipiscing elit. Morbi cursus quam sapien, sed ultricies diam vestibulum ac.
Morbi                    luctus nisl eleifend                    mi tincidunt, 
sed vehicula magna lobortis. 

При разбиении массив содержит много позиций " " (пробелы)

[0] Lorem
[1] " "
[2] " "
[3] " "
[4] " "
[5] Ipsum

Итак, есть ли способ пропустить эти пробелы и получить что-то вроде этого?

[0] Lorem
[1] Ipsum
[3] dolor

Вот мой код:

strTmp = split(tmpstr," ")
For each text in strTmp
'Here I validate other things
  If InStr(x,textToFind) Then
    print "text found"
  Else
    print "not found"
  End If
Next

3 ответа

Решение

Одним из способов является обработка строки перед ее разбиением.

Образец кода

varStr = "Lorem                            ipsum dolor sit amet, consectetur             adipiscing elit. Morbi cursus quam sapien, sed ultricies diam vestibulum ac. Morbi                    luctus nisl eleifend                    mi tincidunt, sed vehicula magna lobortis"

' this is what you are getting right now
arrStr = Split(varStr, " ")

Set objRegEx = CreateObject("VBScript.RegExp")
With objRegEx
    .Global = True
    .MultiLine = True
    .Pattern = "\s+" 'matches any whitespace character
    varStr1 = objRegEx.Replace(varStr, "¬")
End With
Set objRegEx = Nothing

' this is what you want
arrStr1 = Split(varStr1, "¬")

Сначала я удалил все пробелы и заменил их на один, который будет действовать как разделитель, когда я позже разделю строку.

Можно сделать цикл в строке и заменить двойные пробелы одиночными пробелами

Do Until InStr(text, "  ") = 0
        text= Replace(text, "  ", " ")
    Loop

Вы можете попробовать это

If trim(text) <> "" Then
Else
End if

Или же

If len(trim(text)) > 0 Then
Else
End if
Другие вопросы по тегам