Operatore Contains di PowerShell

Operatore Contains di PowerShell

Ci sono diversi operatori disponibili in PowerShell che possono filtrare/confrontare o trovare elementi che corrispondono a una stringa di input specificata. L’operatore -contains è uno dei principali operatori di confronto, classificato come operatore di tipo Contenimento.

Ci sono quattro principali operatori di tipo contenimento.

  • -contains
  • -notcontains
  • -in
  • -notin

In questo articolo, ci concentreremo solo sull’operatore -contains. Questo operatore restituisce sempre un valore booleano (vero/falso) se c’è una corrispondenza. Inoltre, dal punto di vista delle prestazioni, l’operatore -contains è piuttosto veloce nel restituire i risultati perché smette di confrontare l’input non appena trova la prima corrispondenza.

l’operatore -contains in PowerShell

Questo operatore può essere utilizzato per controllare se una collezione contiene un elemento specifico. La sua sintassi è come segue.

[set / collection] -contains [test-value or test-object]

[set/collection] può essere un insieme di valori stringa (separati da virgola), ad esempio, "Hello" o "FOX", "2ndLane".

[test-value or test-object] può essere un elemento o un insieme di elementi (collezione), ad esempio, "Hello" o "Hello", "FOX", "No2".

Controllare un Elemento Specifico

  • Esempio 01:
"Hello", "FOX", "2ndLane" -contains "2ndLane"

Output:

True

L’elemento/valore di input è "2ndLane" e può essere trovato nella collezione/set a sinistra. Pertanto, l’output/risultato è ovviamente True.

  • Esempio 02:
"Hello", "FOX", "2ndLane" -contains "NotInTheCollection"

Output:

False

L’elemento/valore di input è "NotInTheCollection" e non è incluso nella collezione a destra. Pertanto, il comando sopra è stato valutato come False.

Il fatto importante riguardo all’operatore -contains è che controlla l’elemento di input esatto all’interno della collezione/set dato. Il comando sarà valutato come False quando viene fornita una porzione/sottostringa come elemento di input.

  • Esempio 03:
"Hello", "FOX", "FullStringGiven" -contains "StringGiven"

Output:

False

Nell’esempio sopra, l’elemento di input è lo "StringGiven", ma è una sottostringa dell’elemento "FullStringGiven" della collezione a destra. Pertanto, l’elemento di input non corrisponde a un elemento esatto della collezione a destra e il risultato è False come previsto.

Controllare un Set di Elementi/Collezione con l’Operatore -contains in PowerShell

Uno dei principali vantaggi dell’operatore -contains è che può essere utilizzato per trovare se la collezione/set fornito corrisponde a una collezione di input. È importante tenere a mente che l’operatore controlla se le stesse istanze esistono a sinistra (collezione fornita) e a destra (collezione di input/collezione di test). Ciò significa che questi operatori di contenimento utilizzano l’uguaglianza di riferimento quando l’oggetto di input (test-object) è una collezione.

Esempio 01

$leftsideobj = "Hello", "NewString1"

Qui, assegniamo la variabile $leftsideobj all’insieme di elementi (collezione).

$leftsideobj, "AnotherString" -contains $leftsideobj

Poi, utilizziamo l’operatore -contains per trovare una corrispondenza.

Output:

True

Questo comando è stato valutato come True. Perché la collezione di input è $leftsideobj e la stessa istanza è disponibile nella collezione a sinistra. Significa che l’uguaglianza di riferimento è stata soddisfatta. Pertanto, il risultato è True.

Esempio 02

$newleftsideobj = "Hello", "Test"

Qui, abbiamo la variabile $newleftsideobj assegnata a una collezione che contiene gli elementi "Hello" e "Test".

`"Hello", "Test", "NewString1" -contains $newleftsideobj`

Output:

False

Il comando sopra è stato valutato come False. Puoi vedere che la collezione di input (a destra) è $newleftsideobj, che indirettamente rappresenta i due elementi "Hello" e "Test". Se noti a sinistra, abbiamo gli elementi "Hello" e "Test" disponibili. Ma non soddisfa l’uguaglianza di riferimento. Ecco perché l’output è False.

Ti piacciono i nostri tutorial? Iscriviti a DelftStack su YouTube per aiutarci a creare altre guide video di alta qualità. Iscriviti
Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.

Articolo correlato - PowerShell Operator