
概要 📖 – 文字列を検索して置換
Substitute DATは、入力テキストの中から検索語にマッチした部分を別の文字列に置き換えて出力する DATです。Before (検索語) と After (置換語) を指定し、ワイルドカードや変数展開を併用しながら、テキスト DAT 内の文字列を一括で書き換えます。
主な用途 🎯
- テキスト DAT 内の特定文字列を別の文字列に一括置換する
- 複数文字の区切り記号を 1 文字に置き換えて、後段の Convert DAT で表に分割しやすくする
- ワイルドカード (
*/?/[]) を使ったパターン置換でログや受信文字列を整形する - 変数や式を含むテンプレート文字列を、置換と同時に展開して動的なテキストを生成する
- 外部から受け取った文字列の不要な文字・改行コードを取り除いてから解析に渡す
データフロー 🔄
入力: テキスト or テーブル DAT
↓
Before (検索語) と After (置換語) を指定
↓
Match (照合位置) と Case Sensitive (大文字小文字) で照合条件を決定
↓
First Match Only で全置換か最初の 1 件のみかを切替
↓
出力: 置換後の DAT
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Substitute Page 📋
検索語と置換語 🔤
置換の対象と置き換え後の文字列を指定する基本パラメータ
Before .before 🔍
– Before (検索語) — 置換の対象とする文字列を指定します。
– 次の特殊文字 (ワイルドカード) が使用可能です: * は任意の長さの文字列にマッチ、? は 1 文字にマッチ、[] は括弧内で定義した任意の 1 文字にマッチ。
– これらの特殊文字を文字そのものとして照合したい場合は、前にバックスラッシュ (\) を付けます。
After .after ✏️
– After (置換語) — 検索語にマッチした部分を置き換える文字列を指定します。
– 検索語にマッチした全体がこの文字列に置換されます。スペースを含めることも可能です。
Match .match 🎯
Match (照合位置) — 検索語を文字列のどこと照合するかを決めるメニューパラメータ
| 項目 | 内部名 | 説明 |
|---|---|---|
| Anywhere | .anywhere |
Anywhere (どこでも) — 文字列のどの部分にマッチしても置換対象とする |
| Exact | .exact |
Exact (完全一致) — 文字列が検索語と完全に一致した場合のみ置換する |
| At Start | .start |
At Start (先頭一致) — 文字列の先頭に検索語が一致した場合に置換する |
| At End | .end |
At End (末尾一致) — 文字列の末尾に検索語が一致した場合に置換する |
照合と展開の設定 🔧
大文字小文字の区別・変数展開・置換回数を制御するトグル群
Case Sensitive .case 🔠
– Case Sensitive (大文字小文字を区別) — 検索語の大文字・小文字を区別して照合します。
– オフのときは大文字小文字を区別せずにマッチします。
Expand the From String .expand 📥
– Expand the From String (検索語を展開) — 検索語 (Before) 内の変数とバッククォートを展開してから照合します。
Expand the To String .expandto 📤
– Expand the To String (置換語を展開) — 置換語 (After) 内の変数とバッククォートを展開してから置換します。
First Match Only .first 1️⃣
– First Match Only (最初の一致のみ) — マッチした文字列のうち、最初の 1 件だけを置換します。
– オフのときはマッチした全ての箇所が置換されます。
Common Page 🔧
Language .language 📝
DAT が動作するスクリプト言語の決定方法
| 項目 | 内部名 | 説明 |
|---|---|---|
| Input | .input |
入力 DAT のスクリプト言語を使用 |
| Node | .node |
この DAT 自身のスクリプト言語を使用 |
Edit/View Extension .extension 📄
外部エディタに公開するファイル拡張子の選択
| 項目 | 内部名 | 説明 |
|---|---|---|
| dat | .dat |
汎用的なファイル拡張子 dat を使用 |
| From Language | .language |
DAT のスクリプト言語に応じた拡張子を自動選択 |
| Custom Extension | .custom |
Custom Extension で指定したカスタム拡張子を使用 |
Custom Extension .customext 🔤
Edit/View Extension が Custom Extension のときに適用される拡張子:
- Custom Extension 文字列:
Edit/View Extensionがcustomのときに使用される任意のファイル拡張子
Word Wrap .wordwrap 🔁
ノード表示でのワードラップ (折り返し) の有効化
| 項目 | 内部名 | 説明 |
|---|---|---|
| Input | .input |
入力 DAT の Word Wrap 設定を継承 |
| On | .on |
Word Wrap を有効化 (ノード上の長い行を折り返し表示) |
| Off | .off |
Word Wrap を無効化 (折り返さずそのまま表示) |
実践アイデア 💡
Example 1: 区切りを1文字に置換 🧩
Text DAT → Substitute DAT ("::" → "|") → Convert DAT (To Table)
後段の Convert DAT は区切り文字を個別の 1 文字としてしか扱えないため、:: のような複数文字の区切りをそのまま分割できません。Substitute DAT で :: を未使用の 1 文字 (例: |) に置換しておくと、Convert DAT でその 1 文字を区切りとして表に分割できるようになります。
- ソースとなるテキストを Text DAT に保持
- Substitute DAT を後段に配置し、
beforeに::、afterに未使用の 1 文字|を指定 matchをAnywhereにして全ての出現箇所を置換- 後段の Convert DAT で
|を区切りに指定して表に分割
Example 2: ワイルドカードでログ整形 🧹
File In DAT → Substitute DAT (Before="[*]", After="") → Table DAT
ログファイルの先頭に付くタイムスタンプ等のタグ (例: [2026-05-31]) を、ワイルドカード [*] を使った検索語で一括除去する用途です。After を空にすればマッチ部分が削除され、後段でのパースが容易になります。
- File In DAT でログファイルを読み込む
- Substitute DAT を続け、
beforeに[*]を指定 (角括弧で囲まれた任意の文字列にマッチ) afterを空にしてマッチ部分を削除- 後段の Table DAT で整形後のデータを保持
Example 3: 変数を展開したパス生成 🔗
Text DAT → Substitute DAT (Expand the To String=On) → File In DAT
置換語に変数やバッククォート式を含むテンプレートを書き、Expand the To String をオンにして実行時に展開する使い方です。プロジェクトフォルダのパスやフレーム番号を埋め込んだ動的なファイルパスを生成し、後段の File In DAT に渡せます。
- テンプレート文字列を Text DAT に保持
- Substitute DAT で
beforeにプレースホルダ、afterに変数を含む式を指定 expandto(Expand the To String) をオンにして置換語内の変数を展開- File In DAT に展開後のパスを渡してファイルを読み込む
関連オペレータ 🔗
類似機能OP 🔍
- Convert DAT — テキストと表を相互変換する DAT。Substitute DAT と組み合わせて区切り規則を整える
- Evaluate DAT — セルごとに式を評価する DAT。文字列加工を式ベースで行いたい場合の代替
組み合わせ推奨OP 🔄
- Convert DAT — 複数文字デリミタを 1 文字化した後、表へ分割する後段処理
- Text DAT — 置換対象となる元テキストを保持する代表的なソース
- File In DAT — ディスク上のログ / CSV を読み込み、Substitute DAT で整形
- Table DAT — 置換後のテキストをセル参照可能な表として保持
- Web Client DAT — HTTP レスポンス文字列の不要な記号を Substitute DAT で除去
前処理・後処理DAT 🎯
- 前処理: Text DAT、File In DAT、Web Client DAT、Serial DAT
- 後処理: Convert DAT、Table DAT、Select DAT、File Out DAT
Info CHOP情報 📊
Substitute DAT は Info CHOP による詳細情報取得に対応しています。num_rows / num_cols で出力テキストの行数・列数を、total_cooks / cook_time / cpu_time で実行統計を参照でき、置換処理の負荷監視や、入力テキスト変化時の再評価タイミング判定に利用できます。
DAT 固有情報 📋
num_rows: DAT の行数num_cols: DAT の列数type: DAT の型 (table / text)is_table: テーブル形式の場合 1、テキスト形式の場合 0
汎用オペレータ情報 🔄
total_cooks: プロセス開始からのクック回数cook_time: 最後のクック時間 (ミリ秒)cook_frame: 最後にクックされたフレーム番号warnings: 警告数errors: エラー数
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: 特殊文字 (* や ?) がそのまま置換されない
✅ Solution:
*/?/[]はワイルドカードとして解釈されるため、文字そのものを照合したい場合は前にバックスラッシュ (\*等) を付ける- 意図せずワイルドカードが効いていないか、
Beforeの検索語を見直す - 確実に 1 文字単位で置換したい場合は
MatchをExactにして照合範囲を限定する
❌ Problem: 全ての出現箇所が置換されてしまう / 1 件だけ置換したい
✅ Solution:
First Match Onlyをオンにすると、マッチした最初の 1 件だけが置換される- 逆に全置換したいのにされない場合は
First Match Onlyがオンになっていないか確認 - 後段の Convert DAT で表に分割してからセル単位で扱う方が確実なケースもある
❌ Problem: 大文字小文字が想定どおりに区別されない
✅ Solution:
Case Sensitiveをオンにすると大文字・小文字を区別して照合する- 区別したくない場合はオフにして照合する
- 検索語に変数を含む場合は
Expand the From Stringがオンになっているか確認 (展開前の文字列で照合してしまうのを防ぐ)
参考資料 📚
その他 🔗
- TouchDesigner Wiki — DAT 概要
- TouchDesigner Wiki — Category:DATs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

