Как стать автором
Обновить
78.41
Рейтинг
Microsoft
Microsoft — мировой лидер в области ПО и ИТ-услуг

Основы PowerShell: определение конца строки с определенным символом

Блог компании Microsoft Программирование *.NET *PowerShell *
Перевод
Автор оригинала: MS

Знаете ли вы, что можно определить, заканчивается ли строка определенным символом или начинается с него в PowerShell? Томас Рейнер (Thomas Rayner) ранее поделился на CANITPRO.NET, как это легко сделать с помощью регулярных выражений (regular expressions) или, проще говоря, Regex.




За перевод спасибо нашему MSP, Льву Буланову.

Рассмотрим следующие примеры:


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

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

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

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

В первых двух примерах скрипт проверяет, заканчивается ли строка обратным слэшем. В последних двух примерах скрипт проверяет строку с целью определить, начинается ли она со слеша.

Шаблон регулярного выражения для первых двух выглядит так "\\$". Что это значит? Что ж, первая часть \\ означает «обратный слэш» (потому что \ — это escape-символ, а мы в основном экранируем escape-символ. Последняя часть $ является сигналом конца строки. По сути, мы имеем «вообще ничего, где последнее, что стоит на линии — это обратный слэш», и это именно то, что мы ищем.


В следующих двух примерах я просто переместил \\ в начало строки и начал с ^, а не с $, потому что ^ является сигналом для начала строки.


Теперь вы можете делать такие вещи, как:


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

Здесь скрипт проверяет, заканчивается ли строка ‘bears’ обратным слэшем, и если нет, я его добавлю.
Теги:
Хабы:
Всего голосов 19: ↑13 и ↓6 +7
Просмотры 6.4K
Комментарии 10
Комментарии Комментарии 10

Информация

Дата основания
Местоположение
США
Сайт
www.microsoft.com
Численность
Неизвестно
Дата регистрации