Articles

PowerShell cadena contiene

X

Privacidad & Cookies

Este sitio utiliza cookies. Al continuar, usted acepta su uso. Obtenga más información, incluido cómo controlar las cookies.

¡Lo tengo!

Anuncios

¿Cómo se puede comprobar si un PowerShell cadena contiene un carácter o una subcadena?

Puede que te sientas tentado a probar esto:

PS> $s = ‘abcdefghijk’
PS> $s -contiene ‘f’
False

–Pero-contiene es para trabajar con el contenido de las matrices. Así que puedes hacer esto:

PS >(s s. toCharArray ())- contiene ‘f’
Verdadero

Estás convirtiendo implícitamente la cadena ‘f’ a para hacer la comparación. Su comparación es en realidad esta

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

Eso está bien para un solo carácter, pero si quieres probar una subcadena

PS> $s -contiene ‘def’
Falso
PS> ($s.ToCharArray()) -contiene ‘def’
False

Ese enfoque no funciona.

Usted necesita para utilizar el método Indexof

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

El valor devuelto es la posición del PRIMER carácter de la subcadena.

también puede probar un array de caracteres

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

otra vez que reciba el PRIMER carácter en este caso la ‘a’

Recuerde PowerShell es .Basado en cifras NETAS para el primer índice es 0

vamos a conseguir algo de repetición en nuestro destino

PS> $s = $s * 3

PS> $s
abcdefghijkabcdefghijkabcdefghijk

Usted también tiene la opción de recoger la ÚLTIMA ocurrencia de la subcadena

PS> $s.lastIndexOf (‘f’)
27

PS> $s. LastIndexOfAny (a a)
31

Este último es el último’ j ‘ en la cadena, es la última aparición de cualquiera de los caracteres que quería emparejar.

Si no hay un partido que obtiene -1 devuelve

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

Anuncios