PowerShell seqüência de caracteres contém
Privacidade & Cookies
Este site utiliza cookies. Continuando, você concorda com o uso deles. Saiba mais, incluindo como controlar cookies.consegui!
como pode verificar se uma cadeia de caracteres contém um carácter ou um substrato?pode sentir-se tentado a tentar isto.:
PS> $s = ‘abcdefghijk’
PS> $s -contém ‘f’
False
Mas –contém é para trabalhar com o conteúdo de matrizes. Então, você poderia fazer isso:
PS> ($s.ToCharArray()) -contém ‘f’
True
Você está implicitamente converter a seqüência de caracteres ‘f’ para fazer a comparação. Sua comparação é na verdade esta
PS > ($S.ToCharArray()) -contém ‘f’
True
o Que é bom para um único personagem, mas se você quiser testar uma subseqüência de caracteres
PS> $s -contém ‘def’
False
PS> ($s.ToCharArray()) -contém ‘def’
False
Essa abordagem não funciona.
Você deve usar o método Indexof
PS> $s.Indexof(‘f’)
5
PS> $s.Indexof(‘def’)
3
O valor retornado é a posição do PRIMEIRO caractere na subseqüência de caracteres.
Você também pode testar uma a uma matriz de caracteres
PS> $a = ‘g’,’j’,’um’
PS> $s.IndexOfAny($a)
0
mais uma vez você começar o PRIMEIRO caractere neste caso, o ‘um’
Lembre-se PowerShell .Com base LÍQUIDA para o primeiro índice é 0
Permite obter algumas repetições em nosso destino
PS> $s = $s * 3
PS> s $
abcdefghijkabcdefghijkabcdefghijk
Você também tem a opção de escolher a ÚLTIMA ocorrência da substring
PS> $s.LastIndexOf(‘f’)
27
PS> $s.LastIndexOfAny($a)
31
Este último é o último ‘j’ na cadeia – é a última ocorrência de qualquer um dos caracteres que você queria jogo.
Se não houver uma correspondência de você obter -1 retornados
PS> $s.IndexOf(‘z’)
-1
PS> $s.LastIndexOf(‘z’)
-1
Leave a Reply