Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нем неправильно. Необходимо обновить браузер или попробовать использовать другой.
$String = "192.168.0.1 Текст Текст2 Текст 3"
$String = StringStripWS($String, 4)
$aArray = StringSplit($String, " ")
For $i=1 To $aArray[0]
ConsoleWrite("#"&$aArray[$i]&@CRLF)
Next
$String = " 192.168.0.1 Текст Текст2 Текст 3 "
$String = StringStripWS($String, 1+2+4)
$aArray = StringSplit($String, " ")
For $i=1 To $aArray[0]
ConsoleWrite("#"&$aArray[$i]&@CRLF)
Next
ildar,
вопрос, конечно, интересный
Давай по порядку.
Собственно суть вопроса которая для меня самого пока что непонятна: у тебя шаблон без групп захвата и в результат попадает только первая часть шаблона.
Если принять это как правило работы с регулярными выражениями (что так и должно быть), то проблема твоего шаблона очевидна - ты ищешь группы любых символов, после которых стоит хотя бы один пробел. "3" под это условие не попадает, так как стоит в конце строки. Поэтому у тебя в результат "3" не выводится.
Ну и мой вариант
Код:
#Include <Array.au3>
;$String = "192.168.0.1 Текст Текст2 Текст 3"
$String = " 192.168.0.1 Текст Текст2 Текст 3 "
$sPattern = '\S+'
$aResult = StringRegExp($String, $sPattern, 3)
_arraydisplay($aResult)
Благодарю всех, с регуляркой не работал вообще.
У меня задача просто получить ВСЕ данные из файла(кто писал руки бы оторвать) в массив и далее в базу.
Пробелы в строке наугад, то есть трока может начинатся с пробела (и не одного...)
C2H5OH спасибо.
Видимо не внимательно читал Уроки по работе с Регулярными Выражениями (RegExp), чувствовал должен быть шаблон под это, \S - не увидел. Вот и изобретал велосипед.
Кажется разобрался.
Под шаблон .*? попадают пустые строки.
То есть шаблон .*?\s+.*? означает - от текущего места брать любые символы пока не встретим пробелы и после пробелов что угодно даже пустая строка. Этот шаблон эквивалентен шаблону .*?\s+. И в выводимый результат пробелы попадают тоже.
Вот тестовый скрипт
Код:
#Include <Array.au3>
$String = " 192.168.0.1 Текст Текст2 Текст 3 "
;$String = "192.168.0.1 Текст Текст2 Текст 3"
$sPattern = '.*?\s+.*?'
$aResult = StringRegExp($String, $sPattern, 3)
For $i=0 To UBound($aResult)-1
ConsoleWrite("#"&$aResult[$i]&"#"&@CRLF)
Next
_arraydisplay($aResult)
Как видино в консоли результатом является текст с пробелами.