Я пытаюсь найти в проекте определенные c экземпляры неработающего кода, но я не совсем знаю, как сегментировать мой поиск, чтобы он соответствовал чему-то не жадному, а затем продолжаю поиск, чтобы удовлетворить условия, которые я ищу.
Код:
$FPheaderAboveBulHR1 = 'name="[^\r\n]*?_HR1_[^\r\n]*?">[^\~]*? name="[^\r\n]*?_BUL_]^\r\n}*?"'
$EndSet = testValue
ls .\ -filter $projectname*.project –recurse | %{if(gc –Encoding UTF8 $_.fullName –Raw | Select-string $FPheaderAboveBulHR1) {(select-string $EndSet –path $_ | Select-Object –property filename, @{name = “FP header with HR1 field has bul below“ ; Expression = {$_.line.trimstart(“ “)}}, LineNumber, Path)}} | Format-Table
Вот разбивка кода, который я использую для соответствия моему выражению.
ls .\ -filter $projectname*.project –recurse |
рекурсивно ищет проект по имени и проходит через канал
%{if(gc –Encoding UTF8 $_.fullName –Raw |
для каждого объекта, если необработанное содержимое…
Select-string $FPheaderAboveBulHR1withBP)
соответствует указанной переменной строке из содержимого
{(select-string $EndSet –path $_ |
выберите строка, необходимая для отображения ошибки на экране. Перейти к конвейеру
Select-Object –property filename, @{name = “FP header with HR1 has bul below“ ; Expression = {$_.line.trimstart(“ “)}}, LineNumber, Path)}} | Format-Table
выбрать объекты в этой строке: желаемая информация для отображения и отображение информации в таблице
проблема в том, что этот поиск вернет testValue при следующих двух совпадениях:
Тот, который я пытаюсь найти, чтобы исправить.
name="FP_HR1_FP">
---allowed variable line (can be any number of lines based on user input)
---allowed variable line (can be any number of lines based on user input)
name="FP_BUL_FP">
Обнаружено непреднамеренно.
name="FP_HR1_FP">
---allowed variable line(can be any number of lines based on user input)
---allowed variable line(can be any number of lines based on user input)
name="FP_FP">
---allowed variable line(can be any number of lines based on user input)
---allowed variable line(can be any number of lines based on user input)
name="FP_BUL_FP">
Есть ли способ использовать значение имени, чтобы убедиться, что я перехожу от имени к имени только один раз, сохраняя любое количество строк переменных, которые не включают имя между ними?