我想使用Powershell搜索.html文檔中的特定字符串並將其打印出來。搜索並打印出Powershell中的.html數據信息
讓我解釋一下我的第一個函數: 我使用這個函數來搜索包含字符串「Tag」的路徑中的所有.html文檔。之後,我搜索字符串「ID:」,跳過標籤"</TD><TD>"
並使用以下正則表達式打印出以下32個字符,即ID。下面你會看到一部分html文件,然後是我的功能。
<TR VALIGN=TOP><TD>Lokation:</TD><TD>\Test1\blabla\asdf\1234\WS Auswertungen</TD></TR>
<TR VALIGN=TOP><TD>Beschreibung:</TD><TD></TD></TR>
<TR VALIGN=TOP><TD>Eigentümer:</TD><TD><IMG ALIGN=MIDDLE SRC="file:///C:\Users\D0262290\AppData\Local\Temp\23\User.bmp"> Wilmes, Tanja</TD></TR>
<TR VALIGN=TOP><TD>ID:</TD><TD>55C7B7F411E2661E001000806C38EBA0</TD></TR>
</TABLE></TD><TD><IMG ALIGN=MIDDLE SRC="file:///C:\Users\D0262290\AppData\Local\Temp\23\User.bmp">
功能:
Function searchStringID {
Get-ChildItem -Path C:\Users\blub\lala\Dokus -Filter *.html |
Select-String -Pattern "Tag" |
select Path |
Get-ChildItem |
foreach {
if ((Get-Content -Raw -Path $_.FullName) -replace "<.*?>|\s" -match "(?s)ID:(?<Id>[a-z0-9]{32})") {
printToOutputLog
}
}
}
這一切工作正常。
現在我需要檢查2個更多的信息,我無法弄清楚我必須使用的正則表達式,因爲它沒有固定長度的字符。 我總是要檢查下面我的問題中的字符串「標記」。
我的第一個問題: 我已經得到了文件的位置,所以我需要搜索字符串「Lokation:」(你可以在我之前發佈的html上檢查它)。 因此,獲取我必須再次跳過標籤</TD><TD>
的信息並使用正則表達式來獲取位置。我的問題在於,我必須瞭解如何管理不固定的字符長度。有沒有辦法打印「Lokation:</TD><TD>
」和"</TD></TR>"
之間的字符? 這些標籤在其他html文件中都是相同的,所以我只需要一個適用於我的示例的解決方案。
我的第二個問題: 我必須讀出對象的名稱。在html文檔中,它像這樣存儲在評論中。該對象的名字從「[OBJECT:]」開始並以「]」結尾,在這裏再次,我不知道我可以使用哪種表達式,可以使用下面示例對象名稱中的特殊字符。
<!-- ################################################################## -->
<!-- # [OBJECT: NAME BLA bla/ BLA_BLA 1 22:34] # -->
<!-- ################################################################## -->
我會很感激,如果有人可以幫助我。因爲我的大腦是真正堅持在這裏的每一絲對我來說非常有用。 感謝和歡呼聲
[你不能解析與正則表達式HTML(HTTP:/ /stackoverflow.com/a/1732454/1324345) – alroc 2014-09-10 15:40:39