Articles

PowerShell-strengen inneholder

X

Personvern & Informasjonskapsler

dette nettstedet bruker informasjonskapsler. Ved å fortsette godtar du bruken av dem. Lær mer, inkludert hvordan du kontrollerer informasjonskapsler.

Fikk Det!

Advertisements

Hvordan kan du sjekke om En PowerShell-streng inneholder et tegn eller substring?

Du kan bli fristet til å prøve dette:

PS > $s = ‘abcdefghijk’
PS> $s-inneholder ‘f’
Falsk

men –inneholder er for å arbeide med innholdet i matriser. SÅ DU kan gjøre dette:

PS > ($S.ToCharArray ())- inneholder ‘f’
True

du konverterer implisitt strengen ‘f’ til å gjøre sammenligningen. Din sammenligning er faktisk denne

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

DET er greit for et enkelt tegn, MEN hvis du ønsker å teste en delstreng

PS >$s-inneholder ‘def’
False
PS>($S.ToCharArray()) -inneholder ‘def’
false

denne tilnærmingen vil ikke fungere.

Du må bruke Indexof-metoden

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

verdien som returneres er posisjonen TIL DET FØRSTE tegnet i substringen.

DU kan også teste en rekke tegn

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

igjen får du det FØRSTE tegnet i dette tilfellet ‘a’

Husk powershell er.net basert så den første indeksen er 0

lar få litt repetisjon i vårt mål

ps> $s = $s * 3

ps> $s
abcdefghijkabcdefghijkabcdefghijk

du Også har muligheten til å plukke den siste Forekomsten av substringen

ps> $s.LastIndexOf (‘f’)
27

PS> $S.LastIndexOfAny($a)
31

Denne siste er den siste ‘j’ i strengen – det er den siste forekomsten av noen av tegnene du ønsket å matche –

hvis det ikke er en kamp du får -1 returnert

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

Reklame

>