がるちゃんのテキスト部分を抽出するPGM

<h3>がるちゃんのテキスト部分を抽出するPGM</h3>
がるちゃんのテキスト部分を抽出するPGMをpowershellで作成しました.
使い方は、ガルちゃんなどページの内容が書かれたソースコードをダウンロードして
以下のpowershellのパスを適宜設定して、実行します。

2024.11.03 VoiceVox向けに修正したものを追加しました.

<hr>
PGM内容

```powershell
$lines = Get-Content ガルちゃんの内容がかかれたソースコードが置いてあるパス\garuChan1\text1.txt -Encoding UTF8

# Write-Host $lines

$cmtFlg = $false;
$outFilePath = "出力先ファイルパス\output1.txt"


for($i=0; $i -lt $lines.Length; $i++){
    $line1 = $lines[$i]

    #write-host $line1
    #Read-Host "aaa"


    if($line1.IndexOf("</title>") -ne -1){
        $line2 = $line1
        write-host $line2
        Write-Output $line2 | Out-File  $outFilePath -Encoding utf8
        continue

    }

    if($line1.IndexOf("body lv") -ne -1){
        #Write-Host $lines[$i]
        #Read-Host "bbb"


        $line2 = $lines[$i+1];
        for($j=$i+1; $line2.IndexOf("</div>") -eq -1; $j++){
            $line2 = $lines[$j]

            $line3 = $line2 -replace  ‘<[^>]+>’,''

            while($line3.IndexOf("$gt;") -ne -1){
                $line2 = $lines[$j]
                $line3 = $line2 -replace  ‘<[^>]+>’,''
                $j++
            }

            
            
            $line2 = $lines[$j]
            $line4 = $line2 -replace  ‘<[^>]+>’,''
            $line4 = $line4 -replace ' ', ''

            if($line4 -match '[+-][0-9]+'){
                $line4 = ''
            }
            if($line4.IndexOf('返信') -ne -1){
                $line4 = ''
            }

            if($line4 -ne ''){
                if($cmtFlg -eq $false){
                    $cmtFlg = $true
                    #Write-Host "---"

                    Write-Output "---" | Out-File  $outFilePath -Append -Encoding utf8
                }
                #Write-Host $line4
                Write-Output $line4 | Out-File  $outFilePath -Append -Encoding utf8

            }


           # Read-Host "ccc"
        }

        $cmtFlg = $false
        $i = $j+1
    }
}
```

PGM内容2(VoiceVox向けに修正しました)
```powershell
$lines = Get-Content ガルちゃんの内容がかかれたソースコードが置いてあるパス\garuChan1\text1.txt -Encoding UTF8

# Write-Host $lines

$cmtFlg = $false;
$outFilePath = "出力先ファイルパス\output1.txt"


$turn = 0;

for($i=0; $i -lt $lines.Length; $i++){
    $line1 = $lines[$i]

    #write-host $line1
    #Read-Host "aaa"


    if($line1.IndexOf("</title>") -ne -1){
        $line2 = $line1
        write-host $line2
        Write-Output $line2 | Out-File  $outFilePath -Encoding utf8
        continue

    }

    if($line1.IndexOf("body lv") -ne -1){
        #Write-Host $lines[$i]
        #Read-Host "bbb"


        $line2 = $lines[$i+1];
        for($j=$i+1; $line2.IndexOf("</div>") -eq -1; $j++){
            $line2 = $lines[$j]

            $line3 = $line2 -replace  ‘<[^>]+>’,''

            while($line3.IndexOf("$gt;") -ne -1){
                $line2 = $lines[$j]
                $line3 = $line2 -replace  ‘<[^>]+>’,''
                $j++
            }

            
            
            $line2 = $lines[$j]
            $line4 = $line2 -replace  ‘<[^>]+>’,''
            $line4 = $line4 -replace ' ', ''

            if($line4 -match '[+-][0-9]+'){
                $line4 = ''
            }
            if($line4.IndexOf('返信') -ne -1){
                $line4 = ''
            }

            if($line4 -ne ''){
                if($cmtFlg -eq $false){
                    $cmtFlg = $true
                    #Write-Host "---"

                    Write-Output "---" | Out-File  $outFilePath -Append -Encoding utf8
                    $turn++
                }
                #Write-Host $line4

                if( ($turn % 2) -eq 0){
                    $head = "ずんだもん,"
                }else{
                    $head = "四国めたん,"
                }

                $lines5 = $line4.Split('、,。')
                for($k=0; $k -lt $lines5.Length; $k++){
                    if($lines5[$k] -ne ''){
                        $line6 = $head + $lines5[$k]
                        Write-Output $line6 | Out-File  $outFilePath -Append -Encoding utf8
                    }
                }
            }


           # Read-Host "ccc"
        }

        $cmtFlg = $false
        $i = $j+1
    }
}
```

<hr>
参考にしたサイト
<a href="https://qiita.com/daifukusan/items/dd96e60c65db0bb4d0db">Powershell入門 - 14.正規表現② #初心者向け - Qiita</a>