PowerShell -Part 7 (559レス)
PowerShell -Part 7 http://mevius.5ch.net/test/read.cgi/tech/1701241669/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
428: デフォルトの名無しさん [sage] 2025/04/27(日) 20:14:14.77 ID:/O0GUF2P 楽しようとして初回マッチ部分のみのreplace使ったけど やっぱり別のが消えちゃうという一抹の不安があるのでreplaceを使うのはやめた 最終行に改行がないままにしたいのかな? $html = Get-Content "D:\Download\test\sample.html" -Encoding UTF8 -Raw # KWクラスdivを正規表現で削除 $pattern = [regex]"^((?:(?'open'<div[^>]*?>[\r\n]*))|(?'close-open'</div>)|(?:(?!</?div[^>]*>)[\s\S])+?)*(?(open)(?!))" $processedHtml=$pattern.replace($html,{ $r=$args.value $text='' $e=0 $args.groups['3'].captures| sort index| ?{$_.index+$_.length -gt $e -and $_.value -cmatch '<div[^>]*?class="KW"'}| %{ $text = $text + $html.substring($e, $_.index-$e-1); $e = $_.index + $_.length - 1 } if($r.length -gt $e) {$text = $text + $r.substring($e, $r.length-$e)} $text }) [Text.Encoding]::GetEncoding("UTF-8").GetBytes($processedHtml) | Set-Content -Path "D:\Download\test\pit.html" -Encoding Byte http://mevius.5ch.net/test/read.cgi/tech/1701241669/428
429: デフォルトの名無しさん [sage] 2025/04/27(日) 20:24:25.83 ID:/O0GUF2P >>426 試してませんでした HTMLやxmlを扱うことはほぼ無いのであんまり知識が無い で、>>423の場合では[xml]で読み込めてnode削除でうまくいくんだが 入れ子になってる場合 <div class="KW"> <span> <div class="KW"> </div> </span> </div> とかにはどうやったら簡単に対応できるのかと思ってるところ http://mevius.5ch.net/test/read.cgi/tech/1701241669/429
432: デフォルトの名無しさん [sage] 2025/04/27(日) 22:22:47.91 ID:/O0GUF2P >>431 なるほど こんな感じにしてたんだよ $list=@() $doc.GetElementsByTagName('div')|?{$_.class -eq "KW"}|%{$list+=$_} $list|%{[void]$_.ParentNode.RemoveChild($_)} http://mevius.5ch.net/test/read.cgi/tech/1701241669/432
433: デフォルトの名無しさん [sage] 2025/04/27(日) 22:48:33.11 ID:/O0GUF2P 悩んでたのは 既に削除しちゃてて存在しない場合にエラー無視はやりたくないなあってところ http://mevius.5ch.net/test/read.cgi/tech/1701241669/433
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
1.113s*