NG機能

Last-modified: 2025-10-20 (月) 12:52:14

お知らせ:0.36.0NGの追加方法タブの名称などが変更されました。当ページへは反映済みですが、一部の記述や画像が古いままの可能性があります。

「NG/強調」機能の応用的な使い方と関連FAQ。たまにある質問から分割。

画像NG系の機能については「画像・動画・メディア」を参照。
実験的なスクリプト荒らしの自動NG機能「Siki Guard」についてはこちらを参照。


Sikiでは、行数やID数ワッチョイの各部分などなど、掲示板に特化した条件を複数組み合わせて簡単にNGできる。
また、目の前のレスやIDなどを一発で一時的にあぼーんできて管理の手間もない「ミュート」という簡易的なNG機能も備えている。

基本的な使い方は公式サイトの「NG/強調 ワード」を参照。Siki内(条件編集ダイアログの左下)にも応用サンプルあり。
公式で「実装予定」となっているものの大半は実装済なので本項で解説している。

正規表現を覚えると捗る。説明中に正規表現が出てきて意味がわからない場合はこちらに簡単な解説がある。
NG関係や特に正規表現の書き方は最初のうちはなかなか難しいかもしれないので、ざっと眺めてみて分からなければスレで聞くのも良いだろう。


ミュート

Q.ミュートってなに?

通常のNGとは別のカジュアルなNG機能。操作が簡単で面倒な管理の必要がない反面、NGよりも機能面では劣る。公式解説はこちら
不快なレス番号/ID/SLIP(ワッチョイ)/BE/スレなどを右クリックして「ミュート」を選ぶだけで非表示にできる。

単語(Word)を対象にしたい場合は、ドラッグで選択してから以下のいずれかを行う。

  • 右クリック > 選択箇所を… ▶ > 単語をミュート
  • 選択箇所を左クリックして下へドラッグ(スーパードラッグ

    siki-super-drag.png

テキストを選択した時に表示されるボタン(クイッククエリ)に「ミュート」を追加することも可能。

不快なレスを全部NGにしていると面倒な上にすぐ膨大になるので、普段はミュートで対応し、ミュート期限が切れたら復活してくるようなしつこいものだけNGにすると快適。
それでもあえて選択箇所をミュートでなくNGにしたい時については後述

系統消す目立たせるインターフェース
ミュート系機能ミュートマーク板やスレ上
NG系機能NG強調設定画面

Q.ミュートを透明化したい

  • 『設定 > サイト編集 > 板/レス > ミュートを透明にする』にチェックを入れて「開いているスレッド/板に適用」を押す
  • 板:『スレタイ右クリックメニュー > 板操作 > 設定 > NG/マーク/ミュート > ミュート透明化』にチェックを入れる
  • スレ:『レス右クリックメニュー > スレッド操作 > 設定 > NG/マーク/ミュート > ミュート透明化切り替え』にチェックを入れる

0.33.0以前はサイト編集から変更する方法を除き、現在表示中のみが対象かつそのタブを閉じるだけでチェックが外れてしまう仕様だったため注意。

Q.ミュートしたレスへのレスもミュートしたい

  • 『設定 > サイト編集 > レス > ミュートされたレスへのレスを連鎖でミュートする』にチェックを入れ「開いているスレッド/板に適用」を押す
  • 『レス右クリックメニュー > スレッド操作 > 設定 > NG/マーク/ミュート > 連鎖ミュート切り替え』にチェックを入れる

Q.ミュートを透明化したい」と同じく、0.33.0以前はサイト編集から変更する方法を除き、現在表示中のみが対象かつそのタブを閉じるだけでチェックが外れてしまう仕様だったため注意。

Q.ミュートを解除したい

解除する時は『レス右側の吹き出しアイコン付近を右クリック > ミュートを解除』。同じ場所を左クリックをすると一時的な解除が可能。
ミュートされたレスを覗きたいだけであれば、同アイコンにカーソルを乗せるとポップアップでレス本文のみが表示される。※ミュートを透明化している場合はまずそちらを解除する必要あるため注意。

レスのミュートはレス番号(num)に対してとなり、タブを閉じると解除される。
ID、BBS_SLIP、Word、IPへのミュートは板全体へ適用され、NG設定で指定した期間(初期設定では14日間)が経過すると自動解除される。これらの手動での解除は次項を参照。

Q.ミュートしたキーワードを管理したい

ミュートしたID/テキストの情報は『…\profile\mute.db』に記載されている。
『レス右クリックメニュー > スレッド操作 > ミュート/マーク > マーク/ミュートリスト > ミュートの編集』で登録済みの一覧を見られる。

ミュートは複雑な管理をしようとすると逆に手間がかかってしまうので、NG機能の方を使うことも検討しよう。

https://egg.5ch.net/test/read.cgi/software/1754326352/211

211: RomTenma sage 2025/08/14(木) 19:44:58.72 ID:ht/Yyb4T0
>>208
丁度データベースを表示、操作する何かを作りたいと思っていたところです
画像、ミュート、書き込み等の扱いにくさは理解していたので

0.38.0以降であれば、『ハンバーガーメニュー > ツール > データビューア』(core:window.open.dataviewer)での管理が可能。0.38.0の時点では閲覧と削除のみできる。編集は今後対応予定。

Q.リンクに含まれる文字列でミュートしたい

不快画像などを含むレスを画像NGではなくレスごとミュートしたい場合は、Altキーを押しながらURLに含まれる文字列を選択して、その上で右クリックしてメニューからミュートを選ぶ。
再度Altキーを押しながら左ドラッグすることでスーパードラッグも発動可能。Altキーを押さないとクリックした時点で選択が解除されてしまうため注意。

テキスト選択メニューはAlt選択では一瞬だけ表示されるがすぐ消えてしまい使用できない。

なお、このAltキーは上級設定をオンにして『設定 > スレッド > スレッド > URLの一部をマウスで選択する際に同時に押す必要のあるキー』で変更可能。

Q.連続したレスをまとめてミュートしたい

0.29.0以降ならレスを左ドラッグだけでレスを複数選択できるようになり、ミュートもまとめてできるようになった。
使い方は、レスを複数選択した状態で『右クリックメニュー > ○○でミュート』。ミュートの対象にはレス番号/ID/BBS_SLIP(ワッチョイ)などから選択できる。
ドラッグ操作だけでなく『レスをクリック→別のレスをShift+クリック』でも複数選択できる。
選択した中にミュート済みのレスが混じっていても全部まとめてミュートされるため安心。ミュートしたくないレスが混じっている場合はCtrl+クリックで外せる。

siki-range-mute-3.png

連続したミュートをまとめて解除したい場合は、同一の対象でミュートされたレスだけを含むように複数選択した上で『右クリック > ○○でミュート』に「>すべて解除」という表示がつくので実行する。

Q.タブを閉じたらミュートが解除された!

https://egg.5ch.net/test/read.cgi/software/1713372218/160

160: RomTenma sage 2024/05/04(土) 19:22:25.37 ID:N4pgZQ+D0
>>117
スレッドのミュートは板を閉じないことが前提だったので、閉じると消えてしまいます
レスの番号によるミュートも同様です

ミュートの基本指針は一時的に消すものなので永続化はしにくい仕様になっています

とのことなので、永続的/高機能なNGがしたい場合はNGの使用を。

Q.ミュートが自動で削除されないようにしたい

本質的に自然に消えるよう設計されているのがミュート機能ではあるが、永続化する方法もいくつか提供されている。

  • ミュートしたワードなどが一切解除されないようにしたい場合は、『設定 > NG/強調 > マーク/ミュート > マークやミュートしたIDやワードの保存期間(日数)』を999999などにしておけば一生消えないままになる。
  • 0.38.0以降であれば『データビューア > ミュート/マーク(mute.db)』で削除を防ぎたい項目の錠アイコン🔓をクリックして個別にロックできる。

いずれも変則的な機能/運用となるので、基本的にはNG化することをおすすめしたい。

「NG/強調」機能の基本

Q.自分で単語を入力してNGしたい

選択してミュートするのではなく、自分で単語などの条件を細かく指定してより強力なNGにしたい場合は「設定 > NG/強調」から設定する。見ての通り、こちらはNGだけでなく「強調」も可能。
0.28.0以降は『レスの右クリックメニュー > スレッド操作 > ミュート/マーク > ミュートするテキストを追加』でミュートにも手打ちで追加可能になった。

レスのNGや強調であれば

  • 「レス NG/強調」のセクションにある「+レス条件」ボタンをクリック、
  • もしくはNG一覧の任意の場所を右クリックして「ここに新規追加」を選択し、

「NG(本文非表示)」などを選択すると新しい項目が作成されるので「クリックして編集」を押して条件を入力する。

siki-add-ng-0.36.0.png
※+ボタンの右に見えるNGと強調のチェックボックスは、その右の検索窓の絞り込みのボタンであって追加する項目の設定ではない。


「はんかくさい」という言葉を本文に含むレスをNGしてみよう。
対象データの「本文(body)」にチェックを入れた状態で、対象ワードに「はんかくさい」と入れ「保存」を押すと登録される。

siki-ng-basics-cond-0.36.0.png

板(スレ一覧)でスレそのものにNGや強調を設定したい場合は、レスNGの下にある「板 NG/強調」の方で同様の操作を行う。こちらの追加ボタンは「+板条件」となっている。


これだけで十分に機能するが、一覧で以下のような追加設定が可能。

  • 「NG(本文非表示)」のプルダウンで非表示以外の扱いを選択。透明(完全非表示)、薄くする、逆に強調するなどに変更できる
  • 「全体」をクリックしてNGや強調の影響範囲(スコープ)を変更できる。サイト、板、スレッドなどを指定する場合に使う(→注意点
  • 「ラベル入力」欄にラベルを入れると、NGされた箇所に理由としてそのラベルが表示される(強調や透明NGでは表示はない)
  • 「連鎖」にチェックすると、NGや強調対象のレスへアンカーをつけたレスも自動で適用
  • 「+ID」にチェックすると、NGや強調対象のレスをしたIDの他のレスも自動で適用

NGや強調を無効化したい場合は左端のチェックを外す。項目を削除したい場合は右端のゴミ箱ボタンを二度押す。

Q.選択したワードをあえてミュートでなくNGにしたい

文字列を選択して『右クリック > 選択箇所を… > 単語をNGリストに入れる』で選択箇所を対象ワードとした対象データ「本文(body)」の全体NGが自動で作成される。
この方法を使っているとあっという間にNGが膨大になり管理困難となってしまうので、後で条件を付与するなどしてNGでなければできないことをしたい時だけの利用を推奨。

https://egg.5ch.net/test/read.cgi/software/1692950247/274

274: RomTenma sage 2023/10/09(月) 09:30:38.05 ID:RDTu4JXO0
新しく追加されたthread:ng.add.wordコマンドをスーパードラッグやクイッククエリに設定することで直接本文の単純比較でNGに追加できます
クイッククエリは一度components\quickquery.jsのファイルを削除しないと設定には表れないので注意が必要です

スマホやPCの専ブラでよく見かけるのですがNGワードを何百も登録して重くなるという人がいますがSikiも同じなのでミュートという形を別枠で作っていました
解決策になるかはわかりませんが単純なNGワード/ミュートをすべて一纏めにした正規表現を作れるようにする予定です

Q.単純なワードのNGやミュートが増えすぎたのでまとめたい

0.25.9以降ならNG条件の編集画面左下に「条件を生成」というボタンがあり、既存のNGやミュートから単純なNGワードだけを抽出して1つの正規表現にまとめた対象ワードを自動生成してくれる。

siki-ng-consolidation-0.36.0.png

生成された正規表現に問題がないようなら、保存した上で集約済のNG条件は手動で適宜削除する。

なお、手動で「単純なNGワード/ミュートをすべて一纏めにした正規表現」を作るなら /はんかくさい|なまら|したっけ/ のように「|」で区切って並べれば良い

Q.既存のNG/強調を素早く編集したい

  • 『NGされたレス(の跡地)を右クリック > 設定から変更』
  • 『強調などされたレスを右クリック > NG/強調 > 設定から変更』

のいずれかの操作をすると、発動しているNG/強調項目がハイライトされた状態でNGの設定画面が開く。

NG編集画面から操作する場合は、一覧の上にある検索窓にNG/強調のワードやラベルなどの一部を入力すると、該当する項目だけが絞り込み表示される。
検索窓の左にあるチェックボックスでNGまたは強調だけに絞り込みができる。

「NG/強調」機能の詳細や使用例

Q.複数の条件を組み合わせてNGしたい

項目編集中に「条件の追加」を押すと枠が追加され「全ての」条件を満たした時のみに発動するようになる。条件ごとに「文字列」「数字」「時間」をタブで切り替え可能。
追加条件は常にANDとなるので、OR(または)にはできない。ORが必要な場合には単純にもう1つ別のNGを作る。ただし……

Q.特定タイトルを含むスレッドに限定して、継続して現れるワードをNGに設定したい

例:スレタイに「Google Chrome」を含み、本文に「ぬるぽ」と書かれたレスをNG

  1. 条件1
    1. 対象データ「スレッドのタイトル」
    2. 対象ワード「Google Chrome」
  2. 条件2
    1. 対象データ「本文(body)」
    2. 対象ワード「ぬるぽ」

siki-ng-title-and-word-0.36.0.png

Q.条件を「満たさない」ものをNGしたい

検索方法欄にある「否定」にチェックを入れる。条件ごとに個別に設定可能。

Q.sageてないレスをNGしたい

  1. 検索方法「単純比較」「否定」にチェック
  2. 対象データ「メール欄(mail)」
  3. 対象ワード「sage」

siki-ng-notsage-0.36.0.png

Q.条件の「数字(旧number)」タブってなに?

よく使われる要素の出現回数を条件に利用してNGできる機能。
たとえば対象データ「ID数」、範囲「以下の数」「2」とすると単発IDと2回しか登場しないIDのレスをNGできる。
「文字列(旧string)」などの他の条件と組み合わせるとかなり複雑なパターンにも簡単に対応できる。

Q.IDが真っ赤な人をNGしたい

同じIDで15回以上書き込んでいる相手をNGするには以下のように設定する。

  1. 条件1 数字タブ
    1. 対象データ「ID数」
    2. 範囲「以上の数」「15」
  2. 条件2 文字列タブ
    1. 検索方法「正規表現」「否定」にチェック
    2. 対象データ「ID(id)」
    3. 対象ワード「^.$|__NULL__」

条件2で1文字IDやID隠しを除外している。

なお、IDが真っ赤になるレス数は変更可能なので、自分で変更した場合は15とは限らない。

siki-ng-red-id-0.36.0.png

Q.単発IDでURLを貼っている条件でNGしたい

  1. 条件1 数字タブ
    1. 対象データ「ID数」
    2. 範囲「同数」「1」
  2. 条件2 文字列タブ
    1. 検索方法「正規表現」
    2. 対象データ「本文(body)」
    3. 対象ワード「ttps?://」

siki-ng-single-id-url-0.36.0.png

Q.同一IDで3連投している人をNGしたい

  1. 数字タブ
  2. 対象データ「連続 ID数」
  3. 範囲「以上の数」「3」

NG一覧で「+ID」にチェックを入れておけばそのID自体をNG対象へ自動追加できるため併用するのもあり。

Q.1レスにアンカーが5回以上入ってるとNGしたい

例1:

  1. 数字タブ
  2. 対象データ「返信数」
  3. 範囲「以上の数」「5」

例2:

  1. 文字列タブ
  2. 検索方法「正規表現」
  3. 対象データ「本文(body)」
  4. 対象ワード「(?:(>>\d+)[\s\S]*){5}」

例1はよく使われるものを簡単に回数指定でNGできる。
例2は(>>\d+)のところを書き換えればなんでも回数指定でNGできる。

Q.1レスでimgurが15回以上入ってるとNGしたい

  1. 検索方法「正規表現」
  2. 対象データ「本文(body)」
  3. 対象ワード「(.*imgur\.com.*(\n)*){15,}」

Q.長文をNGしたい

例1:総文字数が1000文字以上のレスをNG

  1. 数字タブ
  2. 対象データ「文字数」
  3. 範囲「以上の数」「1000」

例2:100文字以上ある行を1つ以上含むレスをNG

  1. 文字列タブ
  2. 検索方法「正規表現」
  3. 対象データ「本文(body)」
  4. 対象ワード「.{100,}」

Q.低レベルのどんぐり警備員をNGしたい

幾つかの方法があるので紹介する。

例1:数字タブ内の項目を利用する方法

  1. 数字タブ
  2. 対象データ「レスのレベル」
  3. 範囲「以下の数」「希望の数値」を入力

この方法は、おーぷん2chやぷにぷに板にある同様の忍法帖系機能でも使用可能。

siki-acone-ng-0.36.0.png

例2:文字列タブ内の項目を利用する方法

  1. 文字列タブ
  2. 検索方法「正規表現」
  3. 対象データ「名前+トリップ+レベル+ワッチョイ」または「レスのレベル(lname)」
  4. 対象ワード「\[Lv\.[0-3](?!\d).*\]\[(新|初).*\]」

例2はレベル3までのレスをNGする。数字は各自で調整。
レベルに関係なく新芽を摘みたいなら /\[(新|初).*\]/ など。

Q.NGや強調で例外/除外範囲を指定したい

例:レス番号が1~10の時、NGの対象外にする

  1. 範囲を指定したいNGを選択
  2. 条件の追加
  3. 条件n 数字タブ
    1. 対象データ「レス番号」
    2. 範囲「以下の数」「10」

Q.あにまん掲示板でグッド数に応じてレスの色を変えたい

  1. 「強調」を選択
  2. スコープ「サイト」「animanch.com」
  3. 条件1 数字タブ
    1. 対象データ「good数」
    2. 範囲(希望するものを選択)

強調色1~7のカラーを変えたい場合は『設定 > テーマ編集 > カラー > キーワード強調色○』からできる。

Q.スレ立て人(>>1)のレスを目立たせたい

  1. 「強調」または「強調(アウトライン)」を選択
  2. 「+ID」にチェック
  3. 条件1 数字タブ
    1. 対象データ「レス番号」
    2. 範囲「同数」「1」
  4. 条件2 文字列タブ
    1. 検索方法「正規表現」「否定」にチェック
    2. 対象データ「ID」
    3. 対象ワード「^.$|__NULL__|\?\?\?」

条件2で、IDが事実上機能していない状態では発動しないようにしている。

siki-emphasise-op-0.36.0.png

Q.>>1のレスをNGから除外したい

0.27.1以降なら、『設定 > NG/強調 > NG/強調 > スレッドの最初のレスがNG対象であった場合NGを適用しない』にチェックするだけで、全てのNGから>>1を除外できる。

個別のNGでのみ除外したい場合は以下のように設定する。

  1. 除外したいNGを選択
  2. 条件の追加
  3. 条件n 数字タブ
    1. 検索方法「否定」にチェック
    2. 対象データ「レス番号」
    3. 範囲「同数」「1」

siki-ng-deselect-0.36.0.png

Q.条件の「時間(旧time)」タブってなに?

特定の日付や時間帯/曜日などに行われた投稿をNGや強調対象にできる。単独では使いにくい機能だが、荒らしの行動パターンが決まっている時や選挙のような特定のイベント中だけNGしたい単語がある時などに他の条件(特徴)と組み合わせることで効果を発揮する。

例:SLIPが「スプッ」で20~26時以外に出現し同一IDで5レス以上している書き込みをNG

  1. 条件1 文字列タブ
    1. 対象データ「ニックネーム(nickname)」
    2. 対象ワード「スプッ」
  2. 条件2 数字タブ
    1. 対象データ「ID数」
    2. 範囲「以上の数」「5」
  3. 条件3 時間タブ
    1. 検索方法「否定」にチェック
    2. 対象データ「投稿時間」
    3. 時間の選択「20:00」~「2:00」

siki-ng-time-sample-0.36.0.png

※ 0.9.0からの新機能のため、それ以前に作成されたスクリーンショットには表示されていない場合がある。

Q.曜日を複数選択したい

timeタブの「投稿曜日」はCtrlを押しながらクリックして複数の曜日を選択できる。

Q.ワッチョイ(BBS_SLIP)でNGしたい

BBS_SLIPのうち、いわゆるワッチョイなどの回線種別は「ニックネーム(nickname)」、abcd-efghなどの英字(正式名称はKOROKORO)は「ワッチョイ(id2)」で指定し、条件の追加で組み合わせる。
0.28.2以降であれば「名前+トリップ+ワッチョイ」を対象として全部まとめて1つのワード条件にもできる。

5chでの正式名称表示例Sikiでの設定項目
変なニックネームワッチョイ/スプッ/オイコラミネオニックネーム(nickname)
KOROKOROSdC4-bL+3ワッチョイ(id2)
BBS_SLIPワッチョイ (SdC4-bL+3)名前+トリップ+ワッチョイ (0.28.2以降)

※同一対象を示す用語が正式名称とSikiでの名称で違いがあるため注意。

なお、特定のKOROKOROだけ消したい場合はスレでKOROKORO部分を右クリックしてミュートする方法が楽。一定のパターンで変動(コロコロ)するしつこい相手や、特定回線から特定のワードを本文に書く相手などを消したい場合にNGで複雑な指定を行うと良い。

  • 「変なニックネーム」が「オイコラミネオ」のものをNG → ニックネームに「オイコラミネオ」
  • KOROKOROの先頭がABのものをNG → 「id2」に /^AB/ (正規表現にチェック)
  • 「オイコラミネオ」でKOROKORO先頭がABのものをNG → 上述2つを両方設定。0.28.2以降なら「名前+トリップ+ワッチョイ」に「オイコラミネオ AB」と設定
  • KOROKOROの末尾4文字がCDEFのものをNG → 「id2」に /CDEF$/ (正規表現にチェック)
  • KOROKOROの「-」の前がBBのものをNG → 「id2」に「BB-」※画像の例の /^../ は「先頭2文字はなんでもいい」を意味する正規表現だが省略可能
  • KOROKOROの先頭2文字がSd,SD,Sa,Sp,Sr,Sxのいずれかで始まるものをNG → 「id2」に /^S[dDaprx]/ (正規表現にチェック)

ワッチョイ(変なニックネーム)は記念日などに別のものに変わったりするため、KOROKORO(の先頭数文字)によるNGの方が効果的な場合がある。
KOROKOROには+(プラス)が含まれる場合があるため、正規表現を使用する時には「\+」とエスケープしてやる必要あり。例:「bL+3」であれば /-bL\+3/

siki-ng-slip-0.36.0.png

Q.特定ワッチョイで宣伝爆撃などをしている書き込みだけNGしたい

例:ワッチョイ(ニックネーム)が「オイコラミネオ」で、本文に「キャンペーン」と書いてるレスをNGにする

  1. 条件1
    1. 対象データ「ニックネーム(nickname)」
    2. 対象ワード「オイコラミネオ」
  2. 条件2
    1. 対象データ「本文(body)」
    2. 対象ワード「キャンペーン」

Q.NGでワッチョイ隠しを対象にしたい

レスNG条件に以下を設定。

  1. 条件1
    1. 対象データ「ニックネーム(nickname)」
    2. 対象ワード「空白」 ※なにも入力しない
  2. 条件2
    1. 検索方法「正規表現」
    2. 対象データ「スレッドのBBSSLIP設定」
    3. 対象ワード「:(vvvvv|vvvvvv):」

※指定によってはスレ表示が「empty」になることもあるのでその時は無効化してみる。

Q.「レス NG/強調」の対象になったレスのIDやBBS_SLIPを同じ状態にしたい

「レス NG/強調」に登録した一覧から適用したい条件を探し、同じ欄内にある「+ID」にチェックを入れる。
これで処理対象になったレスのIDやBBS_SLIPを自動で判別し同じ状態にしてくれる。追加で記載されるわけではなく、効果は同じスレッド内に限る。

その他の応用例

Q.トリップをつけているレスを全てNGしたい

  1. 検索方法「正規表現」
  2. 対象データ「トリップ(trip)」
  3. 対象ワード「.」※ドット1つだけを入力する

ドット1つだけの正規表現は「1文字でも何か設定されている」もの全てにマッチするのでトリップ以外にも応用できる。

Q「NG/強調」に登録したルールの優先順位を変えたい

「NG/強調」に登録したルールは上から順番に処理され、適用されたものより下にあるものは無視される。各ルールの左端にある矢十字を上下にドラッグして入れ替えが可能なので、優先したいルールを上へ持って行けば良い。

0.36.0以降で新規に登録する場合は、希望する場所で『右クリック > ここに新規追加』と操作すると手間が省ける。

Q.特定の条件に一致した場合、常にNGの対象外にしたい

NGが増えて来ると特定の条件(コテハンやトリップなど)を常にNG対象外にしたくなるかもしれない。
そんな時は、NGの除外対象にしたい条件のNGを作成し、そのNGがリストの一番上にある状態で「何もしない」という動作を割り当てることで、該当するレスは常に「何もしない」ようになる。
「強調」でも似たようなことが可能なので好みで使い分けると良いだろう。

siki-ng_exclude-from-all-NG-0.36.0.png

Q.ID隠しをNGしたい

対象IDに「__NULL__」を指定する。正規表現で /^__NULL__$/ とするとより厳密。

https://egg.5ch.net/test/read.cgi/software/1675213433/979

979: RomTenma sage 2023/04/03(月) 08:31:39.58 ID:DRsUSrnk0
ID隠しに・・・の設定は表記が間違っていて実際の効果はIDが__NULL__ となっている場合にidを表示させないというものでした
この設定の有無に関係なくID:__NULL__は付与される仕様になっています

__NULL__になるのは条件を満たすときなので板やスレッドの設定等が変わると別の結果になるかもしれません

if (!bbsslip.match(/^none:\w+:/) && this.board_obj.get_setting('BBS_FORCE_ID') === 'checked' && !data.host && !data.ip && data.timestamp) {
    data.id = '__NULL__'
}

Q.板に表示されるスレッドを絞りたい

『設定 > NG/強調 > 板 NG/強調』で条件を指定。スレッドのNGとは別枠になっているので注意。
スレッド単位のミュートも可能。

NGや強調に正規表現を使う

Q.そもそも正規表現ってなに?

複数の文字列をパターン化してコンパクトに書き表す表現方法。
「NG/強調」機能で「正規表現」を選択したり、スレ内検索やフィルターで「.*」をクリックしたりすると正規表現になる。

2022-01-11_19h00_31.jpg

正規表現は奥が深いが、とりあえず次のものをいくつか覚えるだけでもかなりのことができるようになるはず。
下表にない表現も多数あるので、完全な一覧が必要な人はこちらなどを参照してほしい。

記号意味例でマッチするパターン備考
(|)括弧内の文字列のどれか(Siki|式|四季)Sikiか式か四季他になにもなければ括弧は省略して|だけでいける。括弧全体で1つの要素を作る(後述)
[]括弧内のどれか1文字[sS]ikisikiかSiki
[a-z]aからzまでのどれか1文字b[a-z]gbag,bcg,big ...[0-9abc]で0123456789abcのどれか
.任意の1文字A.CABC、AほC、A漢Cなど改行(\n)にはマッチしない
*直前の要素の繰り返し(0文字も含む)R.*aRa, Rebecca, RomTenma ....*は「何がどれだけ入ってもいい」を意味する有名な正規表現
+直前の要素の繰り返し(1文字以上)ht+phtp,http,htttp ...
?直前の要素が0か1つhttps?:http:,https:
{m,n}直前の要素がm~n個[abc]{2,4}ab,cab,acba ...{3}(ジャスト3つ),{3,}(3つ以上),{,3}(3つ以下)
^行の先頭^httphttpから始まる行IDなどの先頭を指定するのにも使える
$行の末尾www$wwwで終わる行
\n改行\n{5}5連続の改行最初の行が空行でない場合は空行4つ相当。
0.33.7以降はこれを使わずともNG内で改行できる。

正規表現で特別な意味を持つ、上述の「.」や「*」のような文字そのものを検索したい場合、バックスラッシュ(環境によっては円記号になる)を前につけ「エスケープ」する。
例:

/(amazon|google)\.com/

この例のように、正規表現全体を表す時にスラッシュで囲むことがある。
このスラッシュは実際に設定する時には入力する必要がない。スラッシュをエスケープする必要もない。

正規表現では空白も文字の1つとして扱われるので、前後に余計なスペースを入れてはいけない。0.33.7以降は余計な改行もしないよう注意(警告が出る)。
悪い例:

/Siki | シキ/

Q.1つのルールで複数のワードをまとめて指定したい/OR検索したい

正規表現で

/犬|イヌ|いぬ|わんこ/

のように「|」で区切って複数のワードを並べる。

Q.正規表現でAND検索したい

ORは前項の通り縦棒「|」ひとつで良いが、AND検索を正規表現で実現するのは少々大変である。

/^(?=.*無料)(?=.*キャンペーン)/

で『「無料」と「キャンペーン」』の両方を含む文字列を検索できる。ただし、こちらで解説されているように「.*」では改行にマッチできないので、本文では上手く機能しないことに留意。

改行も含めてマッチさせたい場合には主に2種類の方法がある。

  1. ドット「.」の代わりに[\s\S]もしくは(.|\n)を使用する方法
    /^(?=[\s\S]*無料)(?=[\s\S]*キャンペーン)/
  2. パターンを「(?s:)」で囲む方法。こちらは登録時に警告が表示されるため非推奨かもしれない。
    /^(?s:(?=.*無料)(?=.*キャンペーン))/

「NG/強調」で単純なANDマッチをさせたいだけであれば、正規表現を使わずに『条件1に「無料」、条件2に「キャンペーン」』と単純比較で2つ並べた方が簡単。こちらは改行が挟まっても関係なく検索できる

※高度な正規表現は当Wikiの取り扱い範囲を超えるため詳しくは解説しないが、「(?=【中略】)」は肯定先読みという表現。「\s」は改行を含む空白文字、「\S」は空白以外の文字にマッチする表現(文字クラスエスケープ)。「(?s:)」はsフラグを適用する修飾子である。

Q.NGや強調で末尾条件を指定したい

たとえば「sR」で終わるKOROKOROをNGしたい場合には

/sR$/

のように指定する。

ただし「本文(body)」は全部で1行という扱いになるので、「^」と「$」はレス全体の先頭と末尾を指す。
本文中の行頭は

/(^|\n)/

行末は

/(\n|$)/

のようにして指定できる。

たとえば、本文中のどれかの行が「。」で終わるレスをNG/強調したい場合には

/。(\n|$)/

のように指定する。 /。$/ では『「。」で終わるレス』しかマッチしない。

/..。/

/.{2}。/

のようにして、前に2文字以上ある「。」を対象にするという手もある。

Q.大文字小文字を区別せずに検索したい/iオプションを使いたい

検索方法で「正規表現(大文字小文字を区別しない)」を選択する。
なお、これができるのは「NG/強調」機能のみで、他の場所に実装されている正規表現検索では常に大文字小文字を区別する。

上記方法が使えない場所でも大文字小文字を区別せずに検索したい場合や、パターンの一部でだけ区別しないようにしたい場合は修飾子が使える。

/(?i:regexp)/

逆に、「正規表現(大文字小文字を区別しない)」を選択した状態で、パターンの一部でだけ区別するようにもできる。

/electron.*(?-i:Siki)/

Q.NGや強調、検索などで文字種をまとめて指定したい

正規表現でユニコード文字プロパティ(\p{xxxx})による指定を使う。以下は一例で、世界の言語(文字種)の大半を同様に指定可能。

  • 漢字
    /\p{sc=Han}/
  • ひらがな
    /\p{scx=Hira}/
  • カタカナ
    /\p{scx=Kana}/
  • 絵文字
    /\p{ExtPict}/

Q.絵文字をNGしたい

NG - 検索方法「正規表現」- 対象データ「本文(body)」

/\p{ExtPict}/

Q.絵文字を3つ以上使っているレスをNGしたい❤️🙀🚑

NG - 検索方法「正規表現」- 対象データ「本文(body)」

/(?:\p{ExtPict}.*?){3,}/

「(?:【中略】)」というのは正規表現の動作をほんの少しだけ軽くするおまじないなので気にしなくて良い。

Q.黄色い顔の絵文字だけをNGしたい😗

[\u{1F600}-\u{1F64F}\u{1F90C}-\u{1F9FF}]

のように指定する。この例だと他の絵文字も相当数を巻き込んでしまうので、より厳密に指定したい場合はこちらの一覧を参照して範囲を設定しよう。
\p{ExtPict}を指定した場合はこの一覧の全ての絵文字が対象となる。

Q.かんじを1もじもつかっていないレスをNGしたい

NG - 検索方法「正規表現」- 対象データ「本文(body)」

/^\P{sc=Han}+$/

大文字の「\P」でその指定以外の文字を指定している。

Q.(๑・̑◡・̑๑)のようなレスをNGしたい

NG - 検索方法「正規表現」- 対象データ「本文(body)」

/^(?!.*(?:[\u30a0-\u30ff\u3040-\u309f\u3005-\u3006\u30e0-\u9fcf]+|ttp)).*$/

この例は日本語とttpを含まないレスをNGにしている。

Q.URLだけを貼り付けているレスをNGしたい

NG - 検索方法「正規表現」- 対象データ「本文(body)」

/^(https?://[\w!?/+\-_~;.,*&@#$%()'[\]=]+\n?)+$/

Q.アスキーアート(AA)をNG/強調したい

Sikiでは標準でアスキーアートをコンパクトに表示するようになっており、これは『設定 > サイト編集 > AAとして認知する文字の正規表現』(上級設定)で定義されている。
この機能でAA判定されたレスをNG/強調したい場合は、ここから正規表現をコピーして「レス NG/強調」に登録するだけで良い。
AA判定用の正規表現には工夫の余地がまだまだ残されているので、誤爆や漏れが多いと感じるようであれば他のパターンへ変更してみると良いだろう。

siki-aa-regexp-2.png

「ReplaceStr.txt」の利用

ReplaceStr.txtを利用すればレスやスレタイの一部だけを改変することができる。
GUIが用意されていないため、『…\profile\compatible\ReplaceStr.txt』を直接編集する。SikiのReplaceStr.txtはログの読み込み時にログそのもの(…\profile\log\{サイト}\{板}\{スレッド番号}.json)を直接書き換えてしまうため取り扱いに注意。

このファイルはJane系ブラウザのレガシーのため、SikiのUIとは統合されておらず独特な書式や扱いとなっている。

<パターンの種類>置換するパターン<>置換後の文字列<>置換対象フィールド<対象スレの指定方式>対象のスレタイ/URL
クリックして詳細をオープン

■ 最初の<パターンの種類>は以下の通り。

<ex>
通常の文字列 ※(regularでない)EXpressionの略と思われる
<ex2>
通常の文字列(大文字小文字を区別)
<rx>
正規表現 ※Regular eXpressionの略
<rx2>
正規表現(大文字小文字を区別)
<am>
あいまい文字列(全角ひらがな・全角カタカナ・半角カタカナを同一視)※AMbiguousの略。Siki独自拡張

■ 置換対象フィールド

name
名前欄
mail
メール欄
msg
本文
title
(開いたスレの)スレタイ
subject_title
スレッド一覧のスレタイ
all
全て

date(日付欄)はSikiでは対応していない。サイト編集にスレやレスの「時刻(の)表示フォーマット」という項目があるのでそちらで設定する。

■ 最後の<対象スレの指定方式>は以下の通り。省略時は0になる。この部分そのものも省略可能で、省略すれば全スレが対象になる。

0
部分一致
1
含まない
2
完全一致
3
一致しない
4
正規表現
5
正規表現でマッチしない

Sikiがどこまで互換性を保たせているかは不明だが、ReplaceStr.txtの詳細な書式などについてはこちらも参考になるだろう。
ファイル内にもサンプルがいくつかコメントとして添えられているので参考にされたし。

Q.ReplaceStr.txtを変更したのに反映されない

ReplaceStr.txtを編集した後は要再起動。
また、ReplaceStr.txtはログを読み込む時に一度だけ反映されるもののため、読み込み済みのスレッドに反映させたい場合は「スーパーリロード」か「タブのログを削除して再読み込み」をする必要もある。

Q.読み辛いキーワードを省略表示したい

以下の例では、全ての場所で「出資の受入れ、預り金及び金利等の取締りに関する法律」を「出資法」に書き換える。

<ex>出資の受入れ、預り金及び金利等の取締りに関する法律<>出資法<>all<>

Q.連続した空行を省略したい

<rx>(?:\s?<br>\s?){5,}<> <br><br> <font color="#aaa">[改行省略]</font> <br><br><>msg<>

行数を調整したい時は「{5,}」の数値を変更する。

なお、この例はコメントアウトした状態で最初からReplaceStr.txtにあるので、冒頭の「//」を削除するだけで良い。

Q.レスの冒頭と末尾の空行を削除したい

// 冒頭の空行を削除
<rx>^(?:\s?<br>\s?)+<><>msg<>
// 末尾の空行を削除
<rx>(?:\s?<br>\s?)+$<><>msg<>

ReplaceStr.txtにおいては、「^」と「$」はそれぞれ行の冒頭/末尾ではなく本文全体の冒頭/末尾を意味することに留意。

その他の活用/設定

Q.「NG/強調」の設定画面を直接開きたい

『サイドパネル左下の歯車 > NG/強調』で開けるが、サイドパネル非表示だと最大3手かかるので、「NG/強調」画面を開くユーザーコマンドを作成してパネルアクションにボタンを追加すると良い。

Q.透明あぼーんしたレスを確認したい

透明になっているNGやミュートのあるスレで右クリックするとメニューに「非表示レス:○○件」と表示されているので、選択すると一覧を見られる。

Q.一時的にNGやミュートを解除したい

  • 板:『スレ一覧右クリック > 板操作 > 設定 > NG/マーク/ミュート > NG/強調を一時的に無効化』
  • スレッド:『レス右クリック > スレッド操作 > 設定 > ミュート/マーク > NG/強調を一時的に無効化』
    ※「NG/強調を一時的に無効化」とあるがミュートも問題なく一時的に無効化される模様

よく使うのであれば、ジェスチャやパネルアクションなどに「board:ng.invalidate」や「thread:ng.invalidate」を追加すると良い。

siki-ng-invalidate-1Xa5PUA.png

Q.他の専ブラなどのNG設定を取り込みたい

「外部連携」の当該項目を参照。

Q.「NG/ミュート」を一時的に無効化しているとき、全レスの左に赤線が出るのを止めたい

https://egg.5ch.net/test/read.cgi/software/1702679229/627

627: RomTenma sage 2024/01/03(水) 23:36:09.70 ID:brcdqlY60
>>597
それはフィルタして表示してる場合の共通仕様ですね
どうしても消したければ以下の呪文をmain.cssへ追加

.thread-item:has(.inv_ng) {
  --color-thread-filterBorderBackground: transparent;
}

Q.重複レスが自動でNG(非表示)になるのを止めたい

『設定 > NG/強調 > 自動非表示 > 非表示にする重複レスの出現回数』と「出現数に関係なく非表示にする重複レスの行数」のうち、止めたい方を0にする。

トラブルシューティング関係

Q.荒らしじゃないのに短文のレスが勝手にNGされてしまう

初期状態で、同一内容と思われるレスは自動で非表示になるようになっている。「>>○○ ありがとう!」のような短文レスなどが不必要にNGされてしまっているような場合には『NG/強調 > 自動非表示 > 同一レスとみなす曖昧さの度合い』のレベルを下げると改善できる。自分の使用状況に応じて一番快適なレベルを探すと良い。

Q.NG設定で連鎖を入れた項目の条件がNG(非表示)になる

設定画面を閉じると条件表示は変わるものの本来の指定で動作する。
連鎖オフにすると表示しているNG(非表示)が有効になるので再指定する必要がある。

Q.NGや強調の影響範囲(スコープ)に希望するものが表示されない

サイト編集と同様に、過去に一度は開いたことのあるものだけが対象として表示される。
板であれば『スレ右クリックメニュー > このスレッドの板 > 板を開く』を一度やっておけば表示されるようになる。

スレッドをスコープで指定するのは使いにくいので、条件「文字列」でスレタイを指定する方法も検討しよう。
複数のスコープを指定することもできないが、同様に条件「文字列」の対象データ「URL」「スレッドのタイトル」の組み合わせで実現可能。

Q.ラベルの入力欄がない

「クリックして編集」を押してNGや強調の条件を何かしら設定してから戻って来るとラベル入力欄が出現する。
ラベル入力欄にNGワードを記入して「消えない!」という苦情が多かったためにこのような仕様となっている。

Q.NGや強調で対象ワードを入力して「保存」を押したはずなのにワードが消えた

過去のバージョンでは、「対象データ」を選択せずに「保存」を押すと、その条件は保存されずに消えてしまっていた。
なんらかの理由で最新版にできない場合は、必ず「本文」などを選択してから保存しよう。

Q.スレに1つもレスがない状態になる

「全てのアイテムが非表示状態になっています」というエラーだけが表示されレスが1つも表示されない状態になった時には、NGやミュートにより全てのレスが非表示(透明)状態になっている可能性が高い。
siki-ng-overkill.png

エラー画面に出る「NGを一時的に無効化する」というボタンを押して正常に表示されるようになるなら確定。完全に復旧するには自分で原因となるNG/ミュートを特定して除去する必要がある。無効化モードで左上に出ている「NG/強調無効」をクリックして有効に戻した上で、以下のようなものがないか見直してみよう。

  • 数字1文字やデフォルト名無しの一部など、ほぼあらゆるレスに該当してしまう文字列をミュートやNGしている
  • 正規表現で/./のような全てのレスに該当しうるパターンをNGしている。/Siki|.|四季/のように縦棒でつないでいると見落としやすい。
  • 数字」や「時間」タブで全てのレスに該当する範囲を指定している。例:「レス番号1以上」
  • 滅多にヒットしない文字列やパターンで「否定」にチェックが入っている
  • 全員が同じIDになってしまう板やスレの設定下で「+ID」にチェックが入っている

透明NGについては、怪しいものを「NG(本文非表示)」などに変更してみると調査しやすい。

透明ミュートはスレ上や設定画面からは調べにくいので、透明化を解除してから調査するか、データビューアを使用すると良い。

Q.スレにレスがほとんどない/>>1しか表示されない

前Qと同様にNGやミュートが暴発していても、1つでもレスが生き残っていると先述のようなエラーが出ずかえって対処しにくい場合がある。前Qと同様にして原因となるNGやミュートを探して除去しよう。

なお、>>1をNGしない設定にしている場合は必ずこちらの状態になる。

Q.NGが増えすぎて整理しにくい/NGの設定画面が重くなってきた

1つのワードで1つのNGを作成しているとあっという間に膨大な数になり整理が難しくなりがちである。単純なNGで対象範囲も同じものは、縦棒「|」でつなげて1つの正規表現にするようにすれば少ない項目数で済み、後の整理も簡単になる。わかりやすいラベルをつけておくとさらに良い。

自動で全部1つの正規表現にしてくれる機能もあるので、そちらを活用するのも良いだろう。

Q.NGを増やしたらSikiの動作が重くなってきた

単純なNGパターンが多少増えても動作が重くなることは考えにくいが、正規表現で1つの表現に /.*/ のような無数にマッチしうるパターンを複数並べると計算量が指数関数的に増大して劇的に重くなってしまう場合がある。

動作が重くなってきたら、まずは一度NG機能を全部オフにしてみて、軽くなるようならNGが原因と分かる。機能をオンに戻した上で、怪しいものをいくつか個別にオフにして絞り込んでいくと良い。
どれが怪しいかが分からないようなら、全てチェックされた状態から半分ずつ外してみれば最終的に1つに絞り込める。

なお、単純なNGも万単位で溜まると影響がないとは言い切れないので、Sikiでは一定期間で消えるミュート機能も提供している。適宜使い分けると快適な環境を維持しやすいだろう。

0.36.0以降であれば、重い可能性のある正規表現を入力した時点で警告が出るようになった。

siki-slow-regexp-warning.png

また、スレッドを開く際にあまりに遅い正規表現があったときはサイドパネルのログに以下のようなログが残るようになっているので、動作に違和感がある場合はこちらも参考にすると良いだろう。

Slow RegExp (***/***********) [523 msec]

こちらのようなサイトで正規表現のチェックができるので、上述と合わせて活用しよう。

Q.NGや強調の正規表現を間違えたら暴走してSikiが起動できなくなった!

『…\profile\filters.db』にNGや強調の設定が1行に1つずつ書かれているので、以下のいずれかの方法で対処できる。

上のQにあるように、無数にマッチするものを1つの正規表現で複数並べるとパターンによっては組み合わせが天文学的な数になり終了しなくなってしまう。