Conceptos básicos de PowerShell: detectar si una cadena termina con cierto carácter

¿Sabía que puede detectar si una cadena termina en un carácter específico o si comienza en uno en PowerShell? Thomas Rayner previamente compartió en CANITPRO.NET cómo se puede hacer esto fácilmente mediante el uso de expresiones regulares o más simplemente conocido como Regex.



Original en blog .

Considere los siguientes ejemplos:

'something\' -match '\\$' #returns true 'something' -match '\\$' #returns false '\something' -match '^\\' #returns true 'something' -match '^\\' #returns false 

En los primeros dos ejemplos, la secuencia de comandos comprueba los extremos de la cadena para ver si termina en una barra diagonal inversa. En los últimos dos ejemplos, el script verifica la cadena para ver si comienza con uno.

El patrón de expresiones regulares que se compara para los dos primeros es \\ $. ¿Qué significa eso? Bueno, la primera parte \\ significa "una barra invertida" (porque \ es el carácter de escape, básicamente estamos escapando del carácter de escape. La última parte $ es la señal para el final de la línea. Efectivamente lo que tenemos es "cualquier cosa en absoluto, donde lo último en la línea es una barra invertida ”, que es exactamente lo que estamos buscando.

En los segundos dos ejemplos, acabo de mover el \\ al comienzo de la línea y comencé con ^ en lugar de terminar con $ porque ^ es la señal para el inicio de la línea.

Ahora puedes hacer cosas como esta:

 $dir = 'c:\temp' if ($dir -notmatch '\\$') { $dir += '\' } $dir #returns 'c:\temp\' 

Aquí, el script verifica si la cadena 'lleva' termina en una barra diagonal inversa, y si no lo hace, voy a agregar una.

Source: https://habr.com/ru/post/439672/


All Articles