#
Regex
#
それは何ですか?
Regex拡張機能は、ユーザーがテキスト文字列内の特定のパターンを自動的に検出し(「シーケンス」と呼ばれる)、それらに操作(置換)を適用できるようにします。クイック返信またはSTscriptなどの他のSillyTavern機能と組み合わせて使用する場合に強力なツールになる場合もあります。単にチャットから特定の単語を削除する方法です。
#
役立つリンク
このドキュメントはRegEx シーケンスを書くプロセスを詳しく説明しません。RegExの書き込みを支援する多くのオンラインリソースがあります。
#
前提条件
RegexはSillyTavernの組み込み拡張機能なので、追加のセットアップは必要ありません。
拡張機能パネルで設定を見つけることができます。
#
一般的な使用例
RegExは、チャット内の特定の単語に検索と置換関数を適用し、特定の単語またはセンテンスタイプにマークダウンスタイルを追加したり、STscriptにブール値を返すために使用されることがあります。
#
スクリプト リスト
- 上部のボタンは新しいスクリプトを作成するために使用されます。
- 「グローバル」スクリプトはすべてのキャラクターに適用され、
settings.jsonに保存されます。 - 「スコープ」スクリプトは現在アクティブなキャラクターのみに適用され、キャラクターカードのデータに保存されます。
- 「グローバル」スクリプトはすべてのキャラクターに適用され、
- 「インポート」を使用すると、別のSillyTavern インスタンスからエクスポートされたRegEx スクリプトをインポートできます。
これ以下は、アクション ボタン付きのスクリプトのリストです。
- ドラッグハンドル(スクリプト名の左側にある3つの水平バー)では、スクリプトをドラッグ/ドロップして任意の順序にすることができます。
- プライマリ オン/オフ スイッチは、他に何も変更することなくスクリプトを迅速に有効または無効にする場合があります。無効にされたスクリプトは
打ち消し線スタイルで表示されます。スクリプトがここで無効になっている場合、クイック返信またはSTscriptからトリガーできません。 - 「編集」(鉛筆)ボタンはRegEx スクリプト エディターを開きます。
- 「スコープに移動」(下矢印)はグローバル スクリプトをスコープ スクリプトに変換して、現在のキャラクターに適用します。逆に(上矢印)、スコープ スクリプトをグローバルに変換します。
- 「エクスポート」はブラウザにスクリプトの
.jsonファイルをエクスポートされる原因となります。この後、別のSillyTavern インスタンスにインポートして共有できます。 - 「削除」(ゴミ箱)スクリプトを削除します。
#
RegExエディター
テストモード:これは、エディターの上部に比較ビューを開きます。「入力」ボックスにいくつかのテキストを入力して、RegExスクリプトの結果が「出力」ボックスに表示されます。リアルタイムでスクリプト設定に対する変更が「出力」ボックスを更新するため、貴重なデバッグツールです。
名前:拡張機能のスクリプト リストに表示されるスクリプトのラベル。これはスラッシュコマンドまたはSTscriptを通じてスクリプトをトリガーする場合にもターゲットするために使用されます。
RegExを検索:これはターゲット テキスト パターンを検出するために使用される正規表現です。これは通常、RegEx スクリプト内で最も複雑な部分であり、最も間違いやすい場所です。ページの上部のリンクを参照してRegExシーケンスを書く方法に関する情報についてのリンクを参照してください。このボックスは一般的なSillyTavern マクロの値を解決できます(
、など)「RegExで検索」が実行するように設定されている場合。置換対象:これは一致するシーケンスを置き換えるものです。非常に簡単な例では、「RegExを検索」が
appleで「置換対象」がorangeの場合、スクリプトが適用される任意のテキストで「apple」の最初の出現は自動的に「orange」に変更されます。このボックスに拡張機能固有のマクロを追加すると、一致するテキストの完全なシーケンスが挿入されます。これは通常、特定の単語にスタイルを適用するために使用されます。上記の例に戻ると、
****が「置換対象」ボックスに配置された場合、「apple」のすべての出現は**apple**に置き換えられます。これはそれにボールド マークダウンスタイルを適用します。$1、$2、$3などの変数を使用して、「キャプチャグループ」と呼ばれるものを挿入できます。これらは、「RegExを検索」シーケンスによってマッチするテキスト シーケンス内にある部分文字列です。注意:これらの変数を使用するには、マッチング式がキャプチャするどの部分がマッチするかを定義するかっこのセットを含む必要があります。参照用に上部のリンクを参照してキャプチャグループの設定方法を参照してください。
トリム アウト:このボックスに配置されたテキストは、「置換対象」プロセスが適用される前に一致するテキスト シーケンスから削除されます。例えば、マッチが「apple」の場合、トリム アウトボックスに「le」が含まれている場合、文字「le」はまず削除されてから「置換対象」プロセスが適用されます。「置換対象」ボックスに****が含まれているため、置き換えの結果として
**app**が「apple」に配置されます(まず「le」が削除され、残りのマッチするテキストがボールド マークダウンスタイルを取得します)。複数のトリムは、各文字列を削除するには改行を追加することで適用できます。影響:このチェックボックスのリストは、RegEx スクリプトが適用されるテキストソースを定義します。
- 「ユーザー入力」:スクリプトは、ユーザーが送信をヒット後、ユーザーの入力内容に対して実行されます。
- 「AI応答」:スクリプトは受け取った後、AI応答の内容に対して実行されます。
- 「スラッシュコマンド」:スクリプトは、スラッシュコマンドによってプロンプト/チャットに挿入されるパラメーター値に対して実行されます。
- 「World Info」:スクリプトはWorld Info エントリがプロンプトに挿入される場合にコンテンツに対して実行されます。「送信プロンプトの変更」がチェックされている(またはあたたかみボックスの両方がチェックされていない)が必要です。
- 「推論」:スクリプトはGeminiまたはDeepseekなどのChat Completion APIで返された「推論」オブジェクトのコンテンツに対して実行されます。「送信プロンプトの変更」が確認されている場合、スクリプトは後続のチャットターンでプロンプトに追加される推論ブロックにも適用されます。
- ここですべてがチェックされていない場合、スクリプトは通常のチャット中は決してアクティブ化されませんが、スラッシュコマンドまたはSTscriptによってアクティブ化される可能性があります。
その他のオプション:
- 「無効」スクリプトが実行されるのを防ぎます。これはスクリプトの設定を変更したくない場合、またはスクリプト リストの交換によって単に無効にしたくない場合に使用されます。
- 「編集実行」チャット メッセージが編集された後もスクリプトを実行します。このビューが選択されていない場合、編集されたチャット メッセージのコンテンツはスクリプトをトリガーしません。
RegExに検索マクロ:「RegExを検索」ボックスに存在するマクロ(
、など)を置き換えるかどうかを選択します。- 「置換なし」RegExスクリプトにSillyTavern マクロが無視され、スクリプトはそれらを文字通りに処理します。
- 「生」マクロの値は逐語的に送信されます。これはマクロの値に特殊文字が含まれている場合、RegEx スクリプトが検索する方法を変更する可能性があります。
- 「エスケープ」RegEx各文字の前にエスケープスラッシュ
\を追加して、誤って全体のRegEx シーケンスを変更しないようにします。マクロの値に特定の特殊文字がある場合に役立つ場合があります。
#
深さ設定
最小/最大深さ設定はチャット履歴内のメッセージに正規表現パターンが影響する正確な制御を提供します:
最小深さ:チャット履歴で少なくともNレベル深いメッセージのみに影響します
- 0 = 最後のメッセージ
- 1 = 2番目から最後のメッセージ
- など。
- 空白(「無制限」に設定)の場合、または-1、継続アクションでメッセージを続行することにも影響します
最大深さ:Nレベル以下の深さのメッセージのみに影響します
- 最小深さより大きい必要があります。regexが適用される場合
- システムプロンプトとユーティリティプロンプトはこれらの設定の影響を受けません
たとえば、最小深さを0に、最大深さを2に設定すると、チャット内の3つの最新メッセージのみにregexが適用されます。
#
フラッグ
デフォルトでは、「RegExを検索」パターンは大文字と小文字を区別し、最初の一致のみに適用されます。この動作を調整し、他のRegEx フラグを調整するには、次のように追加できます:
/yourpattern/flags
例:/yourpattern/giテキスト内の「yourpattern」のすべてのインスタンスをケース関係なく一致させます。
最も一般的なフラグは次のとおり:
i:大文字と小文字を区別しないg:グローバル(最初のではなくすべてのマッチに適用)s:dotAll(入力を1行として扱いますので、.は改行をマッチします)m:マルチライン(入力を複数行として扱いますので、^と$は各行の開始/終了に一致します)u:Unicode(入力をUnicodeとして扱いますので、\d、\wなどはUnicode文字をマッチします)
RegExフラグの詳細については、以下のMDNページを参照してください:フラグを使用した高度な検索
#
一時的
デフォルトでは(ここのどちらのボックスもチェックされていない場合)、RegEx スクリプトはチャットのJSONLファイル内に保存されているテキスト値を直接編集します。これにより、送信プロンプトとチャット表示が常に同じ値を含むようになります。ただし、チャットファイルへのこれらの変更は取り消せません。
そうしたくない場合は、ここでチェックボックスの一方または両方を有効にして、RegEx スクリプトの影響を表示または送信プロンプトのみに制限できます。
1つのボックスのみがチェックされている場合、チャット ファイルに変更は加えられませんが、チェックされた項目のみが変更されます。これはLLMが別のものを見ているように表示される意味です。これを慎重に使用してください。
両方が選択されている場合、スクリプトはチャット ファイルに変更を書き込むことを除いてすべての方法で機能します。
#
高度な使用
RegExは単純な検索/置換ツールとして一般的に使用されていますが、より複雑な方法で使用することもできます。
たとえば、「置換対象」ボックスにはCSSルールとHTMLが含まれて、チャット内で特定の単語が見つかるたびに特定のスタイルを持つHTMLエレメントを追加できます。これには、ユーザー設定パネルで「応答で<タグ>を表示」ボックスがチェックされていない場合が必要です。
スクリプトは通常の使用中にトリガーされない場合がありますが、代わりにSTscript内のロジック チェックの一部としてスラッシュコマンドでトリガーされることがあります。「置換対象」ボックスはスクリプトがロジック チェックが真か偽かを示す特定の値を含まれます。これはRegExの有用性をすべてのスラッシュコマンドの完全な機能に拡張し、チャットのコンテンツに基づいた本当に無限のレベルの制御と自動化のための許可。