La stringa PowerShell contiene
Privacy& Cookies
Questo sito utilizza i cookies. Continuando, accetti il loro utilizzo. Ulteriori informazioni, tra cui come controllare i cookie.
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
Leave a Reply