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