Есть ли в PowerShell способ найти URL-адрес в тексте, а затем заменить эти пробелы и% 20 тире (-)? - PullRequest
0 голосов
/ 29 марта 2019

Проблема, с которой я сталкиваюсь - это ограничение Powershell для выполнения рекурсии.В традиционном программировании я мог искать шаблон регулярного выражения и передавать найденное значение в функцию, которая затем выполняла бы другое сопоставление и замену шаблона регулярного выражения, и возвращал родительской функции значение.

Проблема, с которой я столкнулсяявляется то, что у меня есть база данных контента, где есть URL, которые имеют пробелы и% 20.Мне нужно найти эти URL-адреса в теле текста, а затем заменить пробелы этих URL-адресов () и% 20 тире (-).

В PowerShell я бы сделал что-то вроде этого

$output = $bodyOfText -replace "\b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_ |$!:,.;]*[A-Z0-9+&@#/%=~_|$]", "[My URL OUTPUT]"

Хорошо, когда я запустил это, результат будет [My URL OUTPUT] везде, где в тексте есть URL.Как вы можете видеть, мне нужен другой уровень -replace, где я бы взял выходные данные первого -replace и произвел поиск пробелов и% 20 и заменил их на дефис (-).

...