Что нового

Удалить ненужный текст между 2-х строк в текстовом документе

prokazzza

Новичок
Сообщения
160
Репутация
2
Здравствуйте! Поиск не особо помог, помогите удалить ненужный текст между 2-х строк в текстовом документе.

К примеру имеем:

Код:
Нужная строка с текстом 1
ненужная строка (текст рандомный)
ненужная строка (текст рандомный)
ненужная строка (текст рандомный)
ненужная строка (текст рандомный)
ненужная строка (текст рандомный)
ненужная строка (текст рандомный)
Нужная строка с текстом 2

Должно остаться:

Код:
Нужная строка с текстом 1
Нужная строка с текстом 2

И так во всем документе.
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Код:
$zz=StringRegExpReplace(ClipGet(),'(?s)(Нужная строка с текстом 1)(?:(?!Нужная строка с текстом 2).)*(Нужная строка с текстом 2)','\1\2)')
MsgBox(32,@extended,$zz)
 
Автор
P

prokazzza

Новичок
Сообщения
160
Репутация
2
sngr сказал(а):
Код:
$zz=StringRegExpReplace(ClipGet(),'(?s)(Нужная строка с текстом 1)(?:(?!Нужная строка с текстом 2).)*(Нужная строка с текстом 2)','\1\2)')
MsgBox(32,@extended,$zz)

Спасибо, я пробовал оказывается не те значения. Появилась одна проблема:

Код:
Нужная строка с текстом 1

Имеет в некоторых местах в документе, другое окончание, начало всегда одно и тоже, а вот окончание к примеру:

Нужная строка с какой-то 3

или

Нужная строка с безхозной 9


Как быть?
 
A

Alofa

Гость
Код:
$Text = '0ненужная строка (текст рандомный)' & @CRLF & _
		'Нужная строка с текстом 1' & @CRLF & _
		'1ненужная строка (текст рандомный)' & @CRLF & _
		'2ненужная строка (текст рандомный)' & @CRLF & _
		'3ненужная строка (текст рандомный)' & @CRLF & _
		'4ненужная строка (текст рандомный)' & @CRLF & _
		'5ненужная строка (текст рандомный)' & @CRLF & _
		'6ненужная строка (текст рандомный)' & @CRLF & _
		'Нужная строка с текстом 2' & @CRLF & _
		'7rgqwe5gакц6 897ня87анми'

$Text = StringRegExpReplace($Text, '(?mi)(\R?^Нужная.+)|\R?.*', '$1')
ConsoleWrite($Text & @LF)
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Код:
$sRes=StringRegExpReplace(ClipGet(),'(?s)(Нужная строка с текстом 1.*?\R).*?(Нужная строка с текстом 2)','\1\2')
MsgBox(0,"",$sRes)
 
Верх