Proxomitron フィルター作成スレッド Part7at SOFTWARE
Proxomitron フィルター作成スレッド Part7 - 暇つぶし2ch191:think ◆MM0nnAOCiQ
07/07/28 13:31:27 yRNc7ktc0
>>185=>>187なんでしょうか?
基本的に、>186氏の指摘通りだと思いますが、一行単位or段落単位で消去するとなると、行/段落の定義をしっかり考えないと期待通りに動作しないと思います。

ReplaceStr は >*< の範囲にマッチさせることで、文章にマッチさせています。
タグのチェックを行っていないので、以下のHTMLソースで hogehoge を消去させると、こうなります。

<p>...<strong>hogehoge</strong><br />...</p>
 ↓
<p>...<strong></strong><br />...</p>

行を削除するためには「<p> ~ <br />」にマッチさせる必要があります。

[Patterns]
Name = "Remove inline NGWord [2007/07/28] test1"
Active = TRUE
URL = "$TYPE(htm)"
Limit = 512
Match = "<p>([^<]+)\#(<(^br />|/p)[^>]+>([^<]+)\#)+"
"(<br /+>|(^(^</p>)))"
"$SET(Temp=\@)$TST(Temp=*hogehoge*)"
Replace = "<p>"

# このフィルタは日本語を考慮していません。(RelaceStrを参考にしてください)
# <div>, <dd> などのブロックレベル要素による改行に対応していません。
#
# <p>...<strong>hogehoge</strong>...<br /> ...hogehoge...<br /></p>
#
# のような、hogehoge を2行連続で繰り返すテキストでは、2行目にマッチしません。(開始タグを見つけられないため)
# おそらく段落単位で消去する方が対応が楽だと思われますが、きちんとマークアップされていないサイトだと、余計なところまで消去してしまう可能性があります。# (p要素の内部に別のブロックレベル要素があると厄介です)


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch