タグと属性を指定してhtmlファイルやxmlファイルから正規表現で抽出するスクリプトです。
タグは一つだけ指定ができて、属性は好きな数だけ指定できます。
タグ名とその属性が一致するものだけが抽出されます。
大文字と小文字は関係なく抽出されます。
Param([string] $path, [string] $tag, [array] $attr) #タグの部分を抽出する正規表現 [string] $regString = "<" + $tag + "\s*[^>`"]*" #属性の部分を抽出する正規表現 if( $attr.Count -gt 0) { For($i = 0; $i -lt $attr.Count; $i++) { if($i -eq 0) { $regString += "(" + $attr[$i] + "\s*=`"[^`"]+`"" } else { $regString += "|" + $attr[$i] + "\s*=`"[^`"]+`"" } } $regString += "|[^>]+)+" } $regString += ">" #$path #$regString #正規表現の実行 $result = [regex]::Matches((Get-Content $path), $regString, "IgnoreCase") $result.Value
実行例は次のような感じです。
.\ExtractTag.ps1 .\readmeForFavoriteLinkChecker.html div class,id,name