ARGOMENTO
    about_Split

DESCRIZIONE BREVE
    Illustra come utilizzare l'operatore split per suddividere una o 
    più stringhe in sottostringhe. 

DESCRIZIONE DETTAGLIATA
    L'operatore split suddivide una o più stringhe in sottostringhe. 
    È possibile modificare gli elementi seguenti dell'operazione di 
    suddivisione:
	
	-- Delimitatore. L'impostazione predefinita è uno spazio vuoto, ma è 
	   possibile specificare caratteri, stringhe, modelli o blocchi di 
	   script che specificano il delimitatore.
	
	-- Numero massimo di sottostringhe. Per impostazione predefinita 
	   vengono restituite tutte le sottostringhe. Se si specifica un 
	   numero minore del numero di sottostringhe, le sottostringhe 
	   rimanenti vengono concatenate nell'ultima sottostringa. 

	-- Opzioni che specificano le condizioni alle quali viene identificato il 
	   delimitatore, ad esempio SimpleMatch e Multiline. 


  SINTASSI

   Nel diagramma seguente viene riportata la sintassi dell'operatore 
   -split:

   I nomi dei parametri non appaiono nel comando. Sono inclusi solo i 
   valori dei parametri. I valori devono essere riportati nell'ordine 
   specificato nel diagramma di sintassi.

	-Split <String>

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

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

   In qualsiasi istruzione split, è possibile sostituire -split con 
   -iSplit o -cSplit .
   Gli operatori -iSplit e -split non fanno distinzione tra maiuscole 
   e minuscole. L'operatore -cSplit fa distinzione tra maiuscole e 
   minuscole, viene pertanto rilevata la differenza tra maiuscole e 
   minuscole quando sono applicate le regole del delimitatore.


  PARAMETRI

   <String>
        Specifica una o più stringhe da suddividere. Se si inviano 
        più stringhe, tutte le stringhe sono suddivise utilizzando le 
        stesse regole del delimitatore.
        Esempio:

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

   <Delimiter>
        Caratteri che identificano la fine di una sottostringa. Il 
        delimitatore predefinito è uno spazio vuoto, inclusi spazi e 
        caratteri non stampabili quali caratteri di avanzamento riga 
        (`n) e tabulazione (`t). Quando le stringhe vengono 
        suddivise, il delimitatore è omesso da tutte le 
        sottostringhe. Esempio:

	    "Lastname:FirstName:Address" -split ":"
	    Lastname
	    FirstName
	    Address
	
    <Max-substrings>
        Specifica il numero massimo di sottostringhe restituite . Per 
        impostazione predefinita, tutte le sottostringhe vengono 
        suddivise dal delimitatore. Se vi sono più sottostringhe, 
        vengono concatenate nella sottostringa finale. Se ci sono 
        meno sottostringhe, vengono restituite tutte le 
        sottostringhe. Un valore di 0 e valori negativi restituisce 
        tutte le sottostringhe.

        Se si inviano più stringhe (una matrice di stringhe) 
        all'operatore split, il limite Max-substrings viene applicato 
        separatamente a ogni stringa. Esempio:

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

    <ScriptBlock>
        Espressione che specifica regole per l'applicazione del 
        delimitatore. L'espressione deve essere valutata come $true o 
        $false. Racchiudere il blocco di script block tra parentesi 
        graffe. Esempio:
	
            $c = "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptu
            ne" $c -split {$_ -eq "e" -or $_ -eq "p"}
	    M
	    rcury,V
	    nus,Earth,Mars,Ju
	    it
	    r,Saturn,Uranus,N
	
	    tun

    <Options>
        Racchiudere tra virgolette il nome dell'opzione. Le opzioni 
        sono valide solo quando nell'istruzione è utilizzato il 
        parametro <Max-substrings>.

        La sintassi per il parametro Options è la seguente:

	    "SimpleMatch [,IgnoreCase]"

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

 
        Le opzioni per SimpleMatch sono le seguenti:
         	
          -- SimpleMatch: utilizzare il confronto tra stringhe 
             semplice quando si valuta il delimitatore. Non può 
             essere utilizzato con RegexMatch.

          -- IgnoreCase: forza la corrispondenza senza distinzione 
             tra maiuscole e minuscole, anche se è specificato 
             l'operatore -cSplit.


        Le opzioni di RegexMatch sono le seguenti:

          -- RegexMatch: utilizzare la corrispondenza di espressioni 
             regolari quando si valuta il delimitatore. Si tratta del 
             comportamento predefinito. Non può essere utilizzato con 
             SimpleMatch.

          -- IgnoreCase: forza la corrispondenza senza distinzione 
             tra maiuscole e minuscole, anche se è specificato 
             l'operatore -cSplit.

          -- CultureInvariant: ignora le differenze di cultura nel 
             linguaggio quando valuta il delimitatore. Valido solo 
             con RegexMatch.

          -- IgnorePatternWhitespace: ignora gli spazi vuoti senza 
             carattere di escape e i commenti contrassegnati con il 
             simbolo cancelletto (#). Valido solo con RegexMatch.

          -- Multiline: la modalità Multiline riconosce l'inizio e la 
             fine di righe e stringhe. Valido solo con RegexMatch. La 
             modalità predefinita è Singleline.

          -- Singleline: la modalità Singleline riconosce solo 
             l'inizio e la fine delle stringhe. Valido solo con 
             RegexMatch. La modalità predefinita è Singleline.

          -- ExplicitCapture: ignora i gruppi di corrispondenza non 
             denominati in modo che vengano restituiti nell'elenco 
             dei risultati solo i gruppi di acquisizione espliciti. 
             Valido solo con RegexMatch.
	

  OPERATORI SPLIT UNARI E BINARI

    L'operatore split unario (-split <string>) ha la priorità più 
    elevata di una 
    virgola. Pertanto, se si invia un elenco di stringhe separato da 
    virgole all'operatore split unario, viene suddivisa solo la prima 
    stringa (prima della prima virgola).

    Per suddividere più stringhe, utilizzare l'operatore split 
    binario (<string> -split <delimiter>). Racchiudere tutte le 
    stringhe tra parentesi
    oppure archiviare le stringhe in una variabile e inviare la 
    variabile all'operatore split.

    Si consideri l'esempio seguente:

	-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

    
  ESEMPI

    L'istruzione seguente suddivide la stringa in corrispondenza 
    dello spazio vuoto.

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

	Windows
	PowerShell
	2.0
	Windows
	PowerShell
	with
	remoting


    L'istruzione seguente suddivide la stringa in corrispondenza di 
    ogni virgola.

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

        Mercury
        Venus
        Earth 
        Mars
        Jupiter
        Saturn
        Uranus
        Neptune


    L'istruzione seguente suddivide la stringa in corrispondenza del modello "er".

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

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



    L'istruzione seguente esegue una suddivisione con distinzione tra 
    maiuscole e minuscole in corrispondenza della lettera "N".

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

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



    L'istruzione seguente suddivide la stringa in corrispondenza di 
    "e" 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


    L'istruzione seguente suddivide la stringa in corrispondenza di 
    "e" ed "r" ma limita il risultato a sei sottostringhe.

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

	M

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



    L'istruzione seguente suddivide una stringa in tre sottostringhe. 
        C:\PS> "a,b,c,d,e,f,g,h" -split ",", 3

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


    L'istruzione seguente suddivide due stringhe in tre sottostringhe 
    (il limite è applicato a ogni stringa in modo indipendente). 
        C:\PS> "a,b,c,d", "e,f,g,h" -split ",", 3

	a
	b
	c,d
	e
	f
	g,h


    L'istruzione seguente suddivide ogni riga nella stringa here in 
    corrispondenza della prima cifra. Utilizza l'opzione Multiline 
    per riconoscere l'inizio di ogni riga e stringa.

    0 rappresenta il valore "return all" del parametro Max-substrings.
     È possibile utilizzare opzioni, quali Multiline, solo quando è 
     specificato il valore 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.



    L'istruzione seguente utilizza l'opzione SimpleMatch per indicare 
    all'operatore -split di interpretare letteralmente il 
    delimitatore punto (.). 

    Con l'impostazione predefinita, RegexMatch, il punto racchiuso 
    tra virgolette (".") viene interpretato in modo da individuare 
    qualsiasi carattere ad eccezione di un carattere di avanzamento 
    riga. Pertanto, l'istruzione split restituisce una riga vuota per 
    ogni carattere ad eccezione del carattere di avanzamento riga.

    0 rappresenta il valore "return all" del parametro Max-substrings.
     È possibile utilizzare opzioni, quali SimpleMatch, solo quando è 
     specificato il valore Max-substrings.

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

	This
        is
        a 
	test	



    L'istruzione seguente suddivide la stringa in corrispondenza di 
    uno dei due delimitatori, in base al valore di una variabile.

        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
		
	

    Le istruzioni split seguenti suddividono un file XML prima in 
    corrispondenza della parentesi angolare e quindi in 
    corrispondenza del punto e virgola. Il risultato è una versione 
    leggibile del file 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 ";"


    Per visualizzare il risultato, digitare "$x".
	
	C:\PS> $x

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


VEDERE ANCHE
    Split-Path
    about_Operators
    about_Comparison_Operators
    about_Join
    




Argomenti della Guida