0

次の形式のリンクを含むhtmlファイルがあります

<a href="http://www.google.com>Date: 25.02.2013 10:30 Name: Google</a><br>

リンク、日付、時刻、および名前を取得し、それらを CSV 形式 (リンク、日付、時刻、名前) に入れる PowerShell スクリプトを作成しようとしています。

以下はリンクを提供しますが、残りの情報は提供しません。何か不足していますか? 正規表現は機能しますが、名前を探しているときに「名前:」を削除すると便利です。

$input_path = 'C:\temp\myfile.html'
$output_file = 'C:\temp\myfile.csv'
$regex_link = '([a-zA-Z]{4})://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)’
$regex_date = '\d{2}\.\d{2}\.\d{4}'
$regex_time = '\d{2}:\d{2}'
$regex_name = 'Name:\s([\w]*)'
$myVar = select-string -Path $input_path -Pattern $regex_link, $regex_date, $regex_time, $regex_name -AllMatches| % { $_.Matches } | % { $_.Value } 
$myVar
4

1 に答える 1

0

これは私が推測する最もクリーンなソリューションではありませんが、私のテストでは機能します:

$input_path = 'C:\temp\myfile.html'
$output_file = 'C:\temp\myfile.csv'

(Get-Content $input_path) -match "href" | % {
$data = ($_ -replace '(?:.*)href="(.*?)">Date:\s*([\w\.]+)\s*([\w\:]+)\s*Name:\s*(.*)</a>(?:.*)' , '$1;$2;$3;$4').Split(";")
New-Object psobject -Property @{
    "Link" = $data[0].Trim()
    "Date" = $data[1].Trim()
    "Time" = $data[2].Trim()
    "Name" = $data[3].Trim()
    }
} | Select-Object Link, Date, Time, Name | Export-Csv $output_file -NoTypeInformation

Myfile.html:

<html>
<body>
asdsanfkj
djaksl
sadjklas
<a href="http://www.google.com">Date: 25.02.2013 10:30 Name: Googledas adka kasjiw</a><br>
sadsadmdsa
<a href="http://www.google2.com">Date: 22.22.2222 20:20 Name: Google2asd addasd </a><br>
sajl
dasjdsa
asd
</body>
</html>

Myfile.csv:

"Link","Date","Time","Name"
"http://www.google.com","25.02.2013","10:30","Googledas adka kasjiw"
"http://www.google2.com","22.22.2222","20:20","Google2asd addasd"
于 2013-02-26T19:46:34.087 に答える