vbScript игнорирует много пробелов после разделения - PullRequest
0 голосов
/ 25 мая 2018

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

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

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 ]

0 голосов
/ 25 мая 2018

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

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

Или

If len(trim(text)) > 0 Then
Else
End if
0 голосов
/ 25 мая 2018

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

Пример кода

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, "¬")

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

0 голосов
/ 25 мая 2018

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

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