Articles

PowerShell seqüência de caracteres contém

X

Privacidade & Cookies

Este site utiliza cookies. Continuando, você concorda com o uso deles. Saiba mais, incluindo como controlar cookies.consegui!

anúncios

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

Anúncios