Substitute DAT 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

※当サイトにはプロモーションリンクが含まれます。

Substitute DAT の文字列置換機能を示す図

記事更新の通知はXでアナウンス٩(๑❛ᴗ❛๑)
@maru6o6をフォロー

概要 📖 – 文字列を検索して置換

Substitute DATは、入力テキストの中から検索語にマッチした部分を別の文字列に置き換えて出力する DATです。Before (検索語) と After (置換語) を指定し、ワイルドカードや変数展開を併用しながら、テキスト DAT 内の文字列を一括で書き換えます。

主な用途 🎯

  • テキスト DAT 内の特定文字列を別の文字列に一括置換する
  • 複数文字の区切り記号を 1 文字に置き換えて、後段の Convert DAT で表に分割しやすくする
  • ワイルドカード (* / ? / []) を使ったパターン置換でログや受信文字列を整形する
  • 変数や式を含むテンプレート文字列を、置換と同時に展開して動的なテキストを生成する
  • 外部から受け取った文字列の不要な文字・改行コードを取り除いてから解析に渡す

データフロー 🔄

入力: テキスト or テーブル DAT

Before (検索語) と After (置換語) を指定

Match (照合位置) と Case Sensitive (大文字小文字) で照合条件を決定

First Match Only で全置換か最初の 1 件のみかを切替

出力: 置換後の DAT

Tips

初心者の方は、以下日本語書籍も手元にあると安心です。

まる。
まる。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!


パラメータ解説 ⚙️

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 ExtensionCustom Extension のときに適用される拡張子:

  • Custom Extension 文字列: Edit/View Extensioncustom のときに使用される任意のファイル拡張子

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 文字を区切りとして表に分割できるようになります。

  1. ソースとなるテキストを Text DAT に保持
  2. Substitute DAT を後段に配置し、before::after に未使用の 1 文字 | を指定
  3. matchAnywhere にして全ての出現箇所を置換
  4. 後段の Convert DAT| を区切りに指定して表に分割

Example 2: ワイルドカードでログ整形 🧹

File In DAT → Substitute DAT (Before="[*]", After="") → Table DAT

ログファイルの先頭に付くタイムスタンプ等のタグ (例: [2026-05-31]) を、ワイルドカード [*] を使った検索語で一括除去する用途です。After を空にすればマッチ部分が削除され、後段でのパースが容易になります。

  1. File In DAT でログファイルを読み込む
  2. Substitute DAT を続け、before[*] を指定 (角括弧で囲まれた任意の文字列にマッチ)
  3. after を空にしてマッチ部分を削除
  4. 後段の Table DAT で整形後のデータを保持

Example 3: 変数を展開したパス生成 🔗

Text DAT → Substitute DAT (Expand the To String=On) → File In DAT

置換語に変数やバッククォート式を含むテンプレートを書き、Expand the To String をオンにして実行時に展開する使い方です。プロジェクトフォルダのパスやフレーム番号を埋め込んだ動的なファイルパスを生成し、後段の File In DAT に渡せます。

  1. テンプレート文字列を Text DAT に保持
  2. Substitute DAT で before にプレースホルダ、after に変数を含む式を指定
  3. expandto (Expand the To String) をオンにして置換語内の変数を展開
  4. 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 🎯


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 文字単位で置換したい場合は MatchExact にして照合範囲を限定する

❌ Problem: 全ての出現箇所が置換されてしまう / 1 件だけ置換したい
✅ Solution:

  • First Match Only をオンにすると、マッチした最初の 1 件だけが置換される
  • 逆に全置換したいのにされない場合は First Match Only がオンになっていないか確認
  • 後段の Convert DAT で表に分割してからセル単位で扱う方が確実なケースもある

❌ Problem: 大文字小文字が想定どおりに区別されない
✅ Solution:

  • Case Sensitive をオンにすると大文字・小文字を区別して照合する
  • 区別したくない場合はオフにして照合する
  • 検索語に変数を含む場合は Expand the From String がオンになっているか確認 (展開前の文字列で照合してしまうのを防ぐ)

参考資料 📚

その他 🔗

公式リソース 📖

この記事はLLMと共に内容を執筆、更新しています。
最新バージョンとの項目差異など、情報の不一致を見つけた心優しい方はXもしくはInsta、メールなどよりサイト管理者までご連絡ください😎


まる。

お仕事のご依頼はDM又はメールにて。
━━━━━━━━━━━━━━━━━
Python/Touchdesigner/M5Stackをこよなく愛すフルスタックエンジニア。
専門は生理心理学、趣味はヨガやサウナ、EMS電気風呂などヘルスケア全般。
脳波や筋電、心拍を中心とした生体情報のセンシング&インタラクティブアートづくりがライフワーク。

普段はワントゥーテンという会社で空間演出エンジニアをしています。
リファラル採用お繋ぎできますので、我こそはという尖った方は経歴と希望職種添えてDMください(エンジニア以外、営業職等もOK)。
ご飯行きましょう。

↓日常垢
Instagram:@malmal0v0

まる。をフォローする
その他の記事はこちら
Math Combine POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED Select TOP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Window COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Widget COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

タイトルとURLをコピーしました