PowerShell cadena contiene
Privacidad & Cookies
Este sitio utiliza cookies. Al continuar, usted acepta su uso. Obtenga más información, incluido cómo controlar las cookies.
¿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
Leave a Reply