Articles

La stringa PowerShell contiene

X

Privacy& Cookies

Questo sito utilizza i cookies. Continuando, accetti il loro utilizzo. Ulteriori informazioni, tra cui come controllare i cookie.

Capito!

Pubblicità

Come si può verificare se una stringa PowerShell contiene un carattere o una sottostringa?

Potresti essere tentato di provare questo:

PS>s s = ‘abcdefghijk’
PS> s s-contiene ‘f’
False

Ma –contiene è per lavorare con il contenuto degli array. Quindi potresti fare questo:

PS> (s s.ToCharArray()) -contiene ‘f’
True

Stai convertendo implicitamente la stringa ‘f’ per fare il confronto. Il tuo confronto è in realtà questo

PS > (s s.ToCharArray()) -contiene ’f’
True

questo va bene per un singolo carattere, ma se si vuole testare una sottostringa

PS> $s-contiene ‘def’
False
PS> ($s.ToCharArray()) -contiene ‘def’
False

Che il metodo non funziona.

È necessario utilizzare il metodo Indexof

PS> $s.Indexof(‘f’)
5
PS> $s.Indexof(‘def’)
3

Il valore restituito è la posizione del PRIMO carattere della sottostringa.

Si può anche verificare un array di caratteri

PS> $a = ‘g’,’j’,’a’
PS> $s.IndexOfAny($a)
0

di Nuovo si ottiene il PRIMO carattere in questo caso la ‘a’

si Ricorda di PowerShell .In rete in modo che il primo indice è 0

Permette di ottenere qualche ripetizione in del nostro target

PS> $s = $s * 3

PS> $s
abcdefghijkabcdefghijkabcdefghijk

Avete anche la possibilità di scegliere l’ULTIMA occorrenza della sottostringa

PS> $s.LastIndexOf (‘f‘)
27

PS> s s.LastIndexOfAny (a a)
31

Quest’ultima è l’ultima’ j ‘ nella stringa – è l’ultima occorrenza di uno qualsiasi dei caratteri che si desidera abbinare.

Se non c’è una partita che si ottiene -1 restituito

PS> $s.IndexOf(‘z’)
-1
PS> $s.LastIndexOf(‘z’)
-1

Pubblicità