PowerShell obsahuje řetězec
Soukromí & soubory Cookie
Tento web používá soubory cookie. Pokračováním souhlasíte s jejich použitím. Další informace, včetně toho, jak ovládat soubory cookie.
jak můžete zkontrolovat, zda řetězec PowerShell obsahuje znak nebo podřetězec?
můžete být v pokušení to zkusit:
PS> $s = ‚abcdefghijk‘
PS> $s -obsahuje ‚f‘
False
Ale –obsahuje, je pro práci s obsahem pole. Tak můžeš udělat toto:
PS> ($s.ToCharArray()) -obsahuje ‚f‘
True
Jste implicitně převod řetězce „f“, aby se srovnání. Vaše srovnání je vlastně toto
PS ($s.ToCharArray()) -obsahuje ‚f‘
True
to je v pořádku pro jeden znak, ale pokud si chcete vyzkoušet řetězec,
PS> $s -obsahuje ‚def‘
False
PS> ($s.ToCharArray()) -obsahuje ‚def‘
False
tento přístup nebude fungovat.
musíte použít Indexof metoda,
PS> $s.Indexof („f“)
5
PS> $s.Indexof(‚def‘)
3.
vrácená hodnota je pozice PRVNÍHO znaku v názvu podřetězec.
můžete také testovat pole znaků
PS> $a = ‚g‘,’j‘,’a‘
PS> $s.IndexOfAny($a)
0
Opět se dostanete na PRVNÍ znak v tomto případě se ‚a‘
Pamatujte si, PowerShell je .NET založené takže první index je 0,
Umožňuje získat nějaké opakování do našeho cíle,
PS> $y = $y * 3,
PS> $s
abcdefghijkabcdefghijkabcdefghijk
máte také možnost vybrat POSLEDNÍ výskyt podřetězce
PS> $s.LastIndexOf („f“)
27
PS> $s.LastIndexOfAny($a)
31
Tento poslední je poslední, “ j “ v řetězci – jeho poslední výskyt libovolného ze znaků jste chtěli, aby odpovídaly.
Pokud není zápas dostanete -1 vrátil
PS> $s.IndexOf(‚z‘)
-1
PS> $s.LastIndexOf(‚z‘)
-1
Leave a Reply