コンテンツにスキップ

SAKURAスクリプトタグを取り除く

概要

文字列に含まれるSAKURAスクリプトタグを完全に除去する関数。バージョン4/5互換版とバージョン5専用版の2種類が提供されている。

バージョン4/5互換版

ダウンロードファイル(EraseTag1.txt / EraseTag2.txt)としてページに添付されており、コピーして利用する。

バージョン5専用版(正規表現使用)

基本版

RemoveSakuraScript
{
  _text = RE_REPLACE(_argv[0],'\\__{0,2}[a-zA-Z0-9\*!&-](\d|\[("([^"]|\\")+?"|([^\]]|\\]+?)+?\])?','')
  _text = REPLACE(_text,'\\','\')
  _text
}

ネガティブ後読みアサーション版(エスケープされたタグを無視)

RemoveSakuraScript
{
  _text = RE_REPLACE(_argv[0],'(?<!\\)\\_{0,2}[a-zA-Z0-9\*!&-](\d|\[("([^"]|\\")+?"|([^\]]|\\]+?)+?\])?','')
  _text = REPLACE(_text,'\\','\')
  _text
}

説明

  • 引数として文字列を受け取り、SAKURAスクリプトタグを除去した文字列を返す
  • 基本版は「かなりざっくりした」実装と作者が注記している
  • ネガティブ後読みアサーション (?<!\\) を使うことで、エスケープされたタグ(\\ で始まるもの)を除去対象から外せる

関連項目

  • Tips/SAKURAスクリプトタグをエスケープする
  • マニュアル/関数/RE_REPLACE