Что нового

Разбить текст в массив "(\[(?s).*?)\r\n\["

Pahuchiy

Новичок
Сообщения
37
Репутация
0
есть текст:
Код:
[0]
	[9]
		3
	[1]
		[0]
			55
		[1]
			66
		[2]
			77
		[3]
			[0]
				50
			[1]
				True
			[2]
				70
			[3]
				[0]
					50
				[1]
					60
				[2]
					70
				[3]
					""
[1]
	"sdgf
sdgf"
[2]
	"sdgf
sdgf"
[3]
	[4]
		3
	[1]
		[0]
			55
		[1]
			66
его нужно разбить на такие блоки:
Код:
[0]
	[9]
		3
	[1]
		[0]
			55
		[1]
			66
		[2]
			77
		[3]
			[0]
				50
			[1]
				True
			[2]
				70
			[3]
				[0]
					50
				[1]
					60
				[2]
					70
				[3]
					""
Код:
[1]
	"sdgf
sdgf"
Код:
[2]
	"sdgf
sdgf"
Код:
[3]
	[4]
		3
	[1]
		[0]
			55
		[1]
			66
Я попробовал так:
Код:
StringRegExp($sFile,"(\[(?s).*?)\r\n\[",3)
- не получилось
По сути, работает, но находит только 2 вхождения, а должен 3, как я думаю. Мне нужно 4, но я понимаю что 4-й не получится так как в конце уже не будет разделителя. Хотя, наверное, и это тоже можно...
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Код:
#include 'array.au3'
$file=FileRead(@ScriptDir&'\zzz.txt')
$str=StringRegExp($file,'(?sm)^\[(?:(?!^\[).)+',3)
_ArrayDisplay($str)
 
Верх