Что нового

[Данные, строки] Поиск и вывод строк От ~ До

zergood

Новичок
Сообщения
24
Репутация
1
Имеется следующие
Код:
$string = $text
$ot = 'В лесу '
$do = ' росла'
$pattern = '(?s).*?' & $ot & '(.*?)' & $do & '?.*'
$resultat = StringRegExpReplace($string, $pattern, '\1')
MsgBox(0, "Окно",  $resultat)

К примеру у нас такой текст
"В лесу родилась елочка, в лесу она росла
В лесу нету елки, но ранее она там росла"

он мне выведет одну строку только "родилась елочка, в лесу она"
Как сделать что-бы он выводил все найденные строки От ~ До, причем количество строк всегда меняется. т.е. они не всегда 10 там или 12 строк, а изо дня в день меняются, количество строк в $text, будет разное
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Код:
#include <Array.au3>
$string = "В лесу родилась елочка, в лесу она росла"&@CRLF&"В лесу нету елки, но ранее она там росла"
$ot = 'В лесу '
$do = ' росла'
$pattern = '(?s)' & $ot & '(.*?)' & $do & '?'
$a_resultat = StringRegExp($string, $pattern, 3)
;~ _ArrayDisplay($a_resultat)
MsgBox(0, "", _ArrayToString($a_resultat, @CRLF))
 
Автор
Z

zergood

Новичок
Сообщения
24
Репутация
1
@alex33, это не то
Текст всегда разный. В нем может не быть "родилась елочка, в лесу она" но в нем будет "В лесу" и "росла" и не в одной строке
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
лично я не понял. почему "не то".
ведь пример вытаскивает все слова от и до..и не важно сколько их там будет этих слов. ведь начало и конец поиска всегда заранее известны
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
zergood, тогда так.
Код:
#include <Array.au3>
#include <String.au3>
$string = "В лесу родилась елочка, в лесу она росла"&@CRLF&"В лесу нету елки, но ранее она там росла"
$ot = 'В лесу '
$do = ' росла'
$a_resultat = _StringBetween($string, $ot, $do)
;~ _ArrayDisplay($a_resultat)
MsgBox(0, "", _ArrayToString($a_resultat, @CRLF))
 

edyapd

Осваивающий
Сообщения
380
Репутация
30
zergood сказал(а):
@alex33, это не то
Текст всегда разный. В нем может не быть "родилась елочка, в лесу она" но в нем будет "В лесу" и "росла" и не в одной строке
Вы можете привести более подробный пример? И какие должны быть на выходе строки.
Просто я вижу что условие выполняется.
 
Автор
Z

zergood

Новичок
Сообщения
24
Репутация
1
А всё, всем спасибо! А то бы я сейчас тут об гуглися)) не знал как сформулировать
Выводятся теперь нужные строки. Это я что-то тут ступил :smile:
 
Верх