Principes de base de PowerShell: détection si une chaîne se termine par un certain caractère

Saviez-vous que vous pouvez détecter si une chaîne se termine par un caractère spécifique ou si elle commence par un dans PowerShell? Thomas Rayner a précédemment partagé sur CANITPRO.NET comment cela peut être facilement fait en utilisant des expressions régulières ou plus simplement connu sous le nom de Regex.



Original dans le blog .

Considérez les exemples suivants:

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

Dans les deux premiers exemples, le script vérifie la fin de la chaîne pour voir si elle se termine par une barre oblique inverse. Dans les deux derniers exemples, le script vérifie la chaîne pour voir si elle commence par un.

Le modèle d'expression régulière correspondant aux deux premiers est \\ $. Qu'est-ce que ça veut dire? Eh bien, la première partie \\ signifie "une barre oblique inverse" (parce que \ est le caractère d'échappement, nous échappons essentiellement au caractère d'échappement. La dernière partie $ est le signal pour la fin de la ligne. En fait, ce que nous avons est "n'importe quoi" du tout, où la dernière chose sur la ligne est une barre oblique inverse », c'est exactement ce que nous recherchons.

Dans les deux seconds exemples, je viens de déplacer le \\ au début de la ligne et j'ai commencé par ^ au lieu de terminer par $ car ^ est le signal pour le début de la ligne.

Maintenant, vous pouvez faire des choses comme ça:

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

Ici, le script vérifie si la chaîne «ours» se termine par une barre oblique inverse, et si ce n'est pas le cas, j'en ajoute une.

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


All Articles