我正在尝试通过我通过 powershell 从网站页面检索到的 HTML 文本来提取信息。这是示例文本:
<tr class="mergedrow"> <th scope="row" style="text-align:left;"><a href="/wiki/Provinces_of_Finland" title="Provinces of Finland">Province</a> </th> <td><a href="/wiki/Western_Finland" title="Western Finland" class="mw-redirect">Western Finland</a></td> </tr> <tr class="mergedrow"> <th scope="row" style="text-align:left;"><a href="/wiki/Regions_of_Finland" title="Regions of Finland">Region</a></th> <td><a href="/wiki/Finland_Proper" title="Finland Proper" class="mw-redirect">Finland Proper</a></td> </tr>
在此文本中,我可以Region
通过正则表达式提取包含信息的行,如下所示:
PS C:\Users\n12017> $pattern='<th scope="row" style="text-align:left;">.*(Region).*</th>'
PS C:\Users\n12017> $try -imatch $pattern
但是,我想检索匹配行之前和之后的行。我阅读了有关 -context 方法的信息,但未能应用它。当我尝试下面的查询时,它会给出整个文本。
PS C:\Users\n12017> $try | select-string -Context 0,3 $pattern
总而言之,我想在$try
包含所有 html 文本的对象中找到相关匹配行之前和之后的行。
提前致谢...