РАЗДЕЛ
	about_Split

КРАТКОЕ ОПИСАНИЕ
	Описание использования оператора split для разбивки одной или 
	нескольких строк на подстроки. 

ПОЛНОЕ ОПИСАНИЕ
	Оператор split используется для разбивки одной или нескольких 
	строк на подстроки. Можно изменять следующие элементы операции split.
	
		-- Разделитель. По умолчанию в качестве разделителя используется 
		 пробел, однако можно указать и символы, строки, шаблоны или блоки 
		 скриптов, задающие разделитель.
	
		-- Максимальное количество подстрок. По умолчанию выводятся все 
		 подстроки. Если задано число меньше числа подстрок, оставшиеся 
		 подстроки объединяются в последнюю подстроку. 

		-- Параметры, задающие состояния, с которыми производится сопоставление 
		 разделителя, например, SimpleMatch и Multiline. 


  СИНТАКСИС

   В следующей схеме показан синтаксис использования оператора -split.

   Имена параметров не отображаются в команде. Включать в команду 
   нужно только значения параметров. Значения должны появляться в 
   порядке, показанном на схеме синтаксиса.

		-Split <String>

		<String> -Split <Delimiter>[,<Max-substrings>[,"<Options>"]]

		<String> -Split {<ScriptBlock>} [,<Max-substrings>]

   В любой команде split можно заменять на -iSplit или -cSplit для -split.
   В операторах -iSplit и -split регистр не учитывается. В операторе 
   -cSplit при применении правил разделения регистр учитывается.


  ПАРАМЕТРЫ

   <String>
		Задает одну или несколько строк для разбивки. При указании 
		нескольких строк все строки разбиваются по одним и тем же 
		правилам.
		Пример.

			-split "red yellow blue green"
			red
			yellow
			blue
			green

   <Delimiter>
		Символы, указывающие на конец подстроки. По умолчанию в 
		качестве разделителя используются пробелы с учетом 
		непечатаемых символов, например, символа новой строки (`n) и 
		символа табуляции (`t). При разбивке строк разделитель 
		исключается из всех подстрок. Пример.

			"Lastname:FirstName:Address" -split ":"
			Lastname
			FirstName
			Адрес
	
	<Max-substrings>
		Указывает максимальное количество выводимых подстрок. По 
		умолчанию это все подстроки, разделенные разделителем. Если 
		фактическое количество подстрок больше, они объединяются в 
		последней подстроке. Если фактическое количество подстрок 
		меньше, выводятся все подстроки. При выборе значения 0 и 
		отрицательных значений будут выведены все подстроки.

		Если в оператор split отправляется несколько строк (массив 
		строк), параметр Max-substrings применяется к каждой строке 
		отдельно. Пример.

			$c = "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune"  
			$c -split ",", 5
			Mercury
			Venus
			Earth
			Mars
			Jupiter,Saturn,Uranus,Neptune
	

	<ScriptBlock>
		Выражение, указывающее правила применения разделителя. 
		Выражение должно иметь значение $true или $false. В фигурных 
		скобках содержится блок скрипта. Пример.
	
			$c = "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune"
			$c -split {$_ -eq "e" -or $_ -eq "p"}
			M
			rcury,V
			nus,Earth,Mars,Ju
			it
			r,Saturn,Uranus,N
	
			tun

	<Options>
		Заключите имя параметра в кавычки. Параметры действуют только 
		при использовании в инструкции параметра <Max-substrings>.

		Синтаксис параметра Options:

			"SimpleMatch [,IgnoreCase]"

			"[RegexMatch] [,IgnoreCase] [,CultureInvariant] 
			[,IgnorePatternWhitespace] [,ExplicitCapture] 
			[,Singleline | ,Multiline]"

 
		Параметры SimpleMatch:
			
		-- SimpleMatch: использовать простое сравнение строк при 
			 оценке разделителя. Не может использоваться с RegexMatch.

		-- IgnoreCase: форсирует сопоставление без учета регистра, 
			 даже если задан оператор -cSplit.


		Параметры RegexMatch:

		-- RegexMatch: для оценки разделителя используется 
			 сопоставление по регулярным выражениям. Это поведение 
			 установлено по умолчанию. Не может использоваться с 
			 SimpleMatch.

		-- IgnoreCase: Форсирует сопоставление без учета регистра, 
			 даже если задан оператор -cSplit.

		-- CultureInvariant: игнорирует культурные различия языков 
			 при оценке разделителя. Можно использовать только с 
			 RegexMatch.

		-- IgnorePatternWhitespace: игнорирует неизбежные пробелы и 
			 комментарии, помеченные символом номера (#). Можно 
			 использовать только с RegexMatch.

		-- Multiline: В многострочном режиме распознаются начало и 
			 конец строк и выражений. Можно использовать только с 
			 RegexMatch. По умолчанию используется однострочный режим 
			 (Singleline).

		-- Singleline: в однострочном режиме распознаются только 
			 начало и конец выражений. Можно использовать только с 
			 RegexMatch. По умолчанию используется однострочный режим 
			 (Singleline).

		-- ExplicitCapture: игнорирует группы сопоставлений без 
			 имен, и в списке результатов выводятся только группы 
			 явно именованных шаблонов. Можно использовать только с 
			 RegexMatch.
	

  УНАРНЫЕ И ДВОИЧНЫЕ ОПЕРАТОРЫ SPLIT

	Оператор унарной разбивки (-split <string>) имеет более высокий 
	приоритет, чем запятая. Поэтому если отправить в оператор унарной
	разбивки список разделенных запятыми строк, разбиваться будет только 
	первая строка (до первой запятой).

	Чтобы разбить несколько строк, нужно использовать оператор 
	двоичной разбивки (<string> -split <delimiter>). Все строки 
	следует заключать в скобки или сохранять в переменной, 
	а затем отправлять в оператор split эту переменную.

	Рассмотрим следующий пример.

		-split "1 2", "a b"
		1
		2
		a b


		"1 2", "a b" -split " "
		1
		2
		a
		b


		-split ("1 2", "a b")
		1
		2
		a
		b

		$a = "1 2", "a b"
		-split $a
		1
		2
		a
		b


  ПРИМЕРЫ

	Следующая команда разбивает строку по пробелам.

		C:\PS> -split "Windows PowerShell 2.0`nWindows PowerShell with remoting"

		Windows
		PowerShell
		2.0
		Windows
		PowerShell
		with
		remoting


	Следующая команда разбивает строку по запятым.

		C:\PS> "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -split ','

		Mercury
		Venus
		Earth 
		Mars
		Jupiter
		Saturn
		Uranus
		Neptune


	Следующая команда разбивает строку по шаблону "er".

		C:\PS>"Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -split 'er'

		M
		cury,Venus,Earth,Mars,Jupit
		,Saturn,Uranus,Neptune



	Следующая команда выполняет разбивку по символу "N" с учетом регистра.

		C:\PS> "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -cSplit 'N'

		Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus, eptune



	Следующая команда выполняет разбивку по символам "e" и "t".

		C:\PS> "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -split '[et]'

		M
		rcury,V
		nus,
		ar
		h,Mars,Jupi

		r,Sa
		urn,Uranus,N
		p
		un


	Следующая команда выполняет разбивку по символам "e" и "r", но 
	ограничивает количество подстрок шестью.

		C:\PS> "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -split '[er]', 6

		M

		cu
		y,V
		nus,
		arth,Mars,Jupiter,Saturn,Uranus,Neptune



	Следующая команда разбивает строку на три подстроки. 

		C:\PS> "a,b,c,d,e,f,g,h" -split ",", 3

		a
		b
		c,d,e,f,g,h


	Следующая команда разбивает две строки на три подстроки. 
	(ограничение применяется к каждой строке отдельно). 
		C:\PS> "a,b,c,d", "e,f,g,h" -split ",", 3

		a
		b
		c,d
		e
		f
		g,h


	Следующая команда разбивает каждую строку в строке Here String по 
	первой цифре. Для распознания начала каждой строки используется 
	параметр Multiline.

	0 означает значение return all (вернуть все) параметра 
	Max-substrings. Такие параметры как Multiline можно использовать, 
	только если указано значение Max-substrings.

		C:\PS> $a = @'
		1The first line.
		2The second line.
		3The third of three lines.
		'@
	
		C:\PS> $a -split "^\d", 0, "multiline"
	
		The first line.


		The second line.


		The third of three lines.



	В следующей команде параметр SimpleMatch используется, чтобы 
	оператор -split интерпретировал разделитель в виде точки (.) 
	буквально. 

	При использовании параметра по умолчанию RegexMatch символ точки 
	в кавычках (".") интерпретируется как любой символ, кроме символа 
	новой строки. В результате этого команда split выведет пустые 
	строки для каждого символа, кроме символов новой строки.

	0 означает значение return all (вернуть все) параметра 
	Max-substrings. Такие параметры как SimpleMatch можно 
	использовать, только если указано значение Max-substrings.

		C:\PS> "This.is.a.test" -split ".", 0, "simplematch"

		This
		is
		a 
		test



	Следующая команда выполняет разбивку по одному или двум 
	разделителям в зависимости от значения переменной.

		C:\PS>  $i = 1
		C:\PS>  $c = "LastName, FirstName; Address, City, State, Zip"
		C:\PS>  $c -split {if ($i -lt 1) {$_ -eq ","} else {$_ -eq ";"}}

		LastName, FirstName
		 Address, City, State, Zip
			
	

	Следующие команды разбивают файл XML сначала по угловым скобкам, 
	а затем по точкам с запятой. В результате выводится удобная для 
	чтения версия файла XML.

		C:\PS>  get-process powershell | export-clixml ps.xml
		C:\PS>  $x = import-clixml ps.xml
		C:\PS>  $x = $x -split "<"
		C:\PS>  $x = $x -split ";"


	Для отображения результата введите "$x".
	
		C:\PS> $x

		@{__NounName=Process
		Name=powershell
		Handles=428
		VM=150081536
		WS=34840576
		PM=36253696
		...


СМ. ТАКЖЕ
	Split-Path
	about_Operators
	about_Comparison_Operators
	about_Join