2013-02-14 2 views
4

Я пытаюсь написать сценарий Powershell, который вытащит строку между двумя тегами HTML в HTML-файле. Я не знаю, какое значение будет, но я знаю, какие теги нужно искать. Кроме того, я знаю, что теги не всегда появляются в начале строки (т. Е. Они могут находиться в середине строки текста). Наконец, я также знаю, что теги и строка между ними никогда не будут разбиваться на строку.Найти строку между html-тегами в Powershell

У меня есть путь файла, хранящегося в переменной

$filePath = "C:\Path\file.html" 

Я пытаюсь найти любое значение между <h6> и </h6> и хранить эти значения в массиве.

ответ

1

Попытка

$myarray = gc $filepath | 
% { [regex]::matches($_ , '(?<=<h6>\s+)(.*?)(?=\s+</h6>)') } | 
select -expa value 

Этот запуск и удалить конечные пробелы, если таковые имеются. Если вы хотите, пожалуйста, заполните следующие поля: \s+ Код регулярного выражения

+0

Отлично! После публикации этого я больше играл с моим регулярным выражением, и у меня почти было такое, как у вас. Последний вопрос: что делает 'select -expa value'? – EustaceMonk

+0

@EustaceMonk Вы можете попробовать команду без ввода «select -expa value», а затем попытаться с помощью «выбрать значение», чтобы понять разницу. тестирование лучше, чем мой английский;) –

+0

Я не вижу разницы между использованием 'select -expa value' и полным отключением. Я вижу разницу при использовании только 'select value'. – EustaceMonk