正規表現メタ文字エスケープ
file.txt (v1.0+)を貼り付けると、file\.txt \(v1\.0\+\)が得られます。ドットや括弧、プラス記号などの演算子にバックスラッシュが付くので、入力した文字と一文字ずつ一致します。逆の処理で元にも戻せ、ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- file.txt (v1.0+)
- 計算モード
- Escape
- 結果
- file\.txt \(v1\.0\+\)
- 長さ
- 21
- 入力の長さ
- 16
- エスケープ数
- 5
正規表現は、ドット・アスタリスク・括弧などを通常の文字ではなく演算子として扱います。report.v2.pdf のようなファイル名をエスケープせずにパターンへ貼り付けると、ドットが「任意の1文字」になり、意図した名前を超えて一致が静かに広がります。製品コード、メールのローカル部、検索欄に貼ったシェルのグロブ、利用者が入力したフィルタも同じ危険を伴います。本機能は各文字を走査し、JavaScript および PCRE 様式のメタ文字の前にバックスラッシュを付け、元の文字列と1文字ずつ一致する断片を返します。逆方向では純粋なリテラルパターンをアンエスケープし、\.や \( の背後にあるプレーンテキストを復元します。
エスケープが必要な文字とその理由
正規表現エンジンは、一部の記号をデータではなく構文として読みます。JavaScript の RegExp コンストラクタや PCRE 系エンジンでリテラル一致のためにエスケープすべき古典的な集合には、ピリオド、アスタリスク、プラス、疑問符、キャレット、ドル、波括弧、丸括弧、縦棒、角括弧、そしてバックスラッシュ自体が含まれます。
先頭のバックスラッシュが無いと、ピリオドは任意の1文字に、アスタリスクは直前の要素の繰り返しに、括弧はキャプチャグループの開始に、キャレットやドルは位置アンカーになります。製品 SKU・ファイルパス・エラーメッセージを入力どおりに見せたいだけなら、それらの記号は再びデータでなければなりません。
本機能はエスケープ経路で各記号の前にバックスラッシュ1つを付けます。file.txt は file\.txt になり、(v1.0+) のような版タグは \(v1\.0\+\) になります。その集合外の文字・数字・空白・多くの句読点はそのまま通過します。
送信内容と返却内容
カタログ内の他のエンコード系ツールに既に接続しているチーム向けに encode と decode の別名も受け付けます。escape は入力を走査し、前置したメタ文字の数を数え、安全なパターン断片の主結果として result を返します。unescape は純粋なリテラルパターンのみを逆転します。
text 欠落、未対応の mode、文書化された上限を超える文字列も、前払い残高を消費せずに失敗します。手早い貼り付け確認には無料のブラウザフォームを、一括フィクスチャや CI アサーションには同一契約をスクリプトから呼び出してください。
実務でリテラル正規表現エスケープが現れる場面
検索・フィルタ UI は部分一致を表で強調するため、利用者入力を動的パターンに包むことが多く、先にエスケープすれば単独の括弧が構文エラーや意図しないグループを起こしません。ログ仕分けツールはコピーしたエラー行を、ホスト名や版番号のドットをワイルドカードとして扱わない検索パターンに変えます。
セキュリティレビュー担当は許可リスト式に埋め込む前に疑わしい文字列をリテラル断片へ変換し、メタ文字が一致範囲を広げないようにします。ローカライズやコンテンツのパイプラインは既にエスケープ済みの断片を保存することがあり、アンエスケープで表示用の人間可読トークンを、能動構文を戻さずに復元します。
プログラミング講座ではライブのエスケーパで「任意の文字」と「ピリオドという文字」が正規表現の授業では別概念であることを示します。一致・置換の実行、既存パターンの散文説明、自然言語からのパターン生成、URL のパーセント符号化が必要なら、それらは別の検索意図とランディングです。本ページはリテラルなメタ文字のエスケープとアンエスケープのみを扱います。
活用例
検索 UI の安全なユーザフィルタ
動的な正規表現に包む前に利用者が入力した内容をエスケープし、ドットや括弧が演算子や構文エラーにならないようにします。
フィクスチャからプレーンテキストを復元
設定ファイルに保存された純粋なリテラルパターンをアンエスケープし、管理ツールで元の製品コードやパスを表示します。
よくある質問
このツールがエスケープするメタ文字は何ですか?
JavaScript / PCRE 様式のリテラル集合です。.* + ? ^ $ { } ( ) | [ ] とバックスラッシュで、各々の前に \ を付け、断片が元の文字と正確に一致するようにします。
不正な入力ではどうなりますか?
text 欠落、未知の mode、過長文字列、末尾のバックスラッシュ、\d のような非メタエスケープ、unescape 経路の裸のメタ文字は拒否されます。検証失敗は課金されません。
正規表現の実行やテストはしますか?
いいえ。 リテラル一致のためのエスケープとアンエスケープのみです。match・replace・グループキャプチャが必要なら専用の正規表現テスターをご利用ください。
エスケープしないドットが余計に一致するのはなぜですか?
正規表現ではドットが任意の1文字を意味するため、report.v2.pdfはその位置に別の文字がある名前にも一致してしまいます。エスケープすると本物のピリオドとして扱われ、意図した文字だけに一致します。
エスケープ済みのパターンを元の文字に戻せますか?
はい、逆の処理で戻せます。ただしリテラルのパターンに限られ、バックスラッシュの後にはメタ文字か別のバックスラッシュが必要です。\dや\n、末尾の単独のバックスラッシュは推測せずに受け付けません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/regex-escape \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"file.txt (v1.0)"}'const res = await fetch("https://api.kit.forhosting.com/enc/regex-escape", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "file.txt (v1.0)"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/regex-escape",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "file.txt (v1.0)"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/regex-escape", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"file.txt (v1.0)"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"file.txt (v1.0)"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/regex-escape", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "file.txt (v1.0)"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.regex_escape",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
末尾の不正な形、メタ以外のエスケープ、アンエスケープ経路上の裸の演算子は invalid_input で即失敗するため、不良フィクスチャが CI に入りません。無料のブラウザツールと有料 API は同一の決定論的コアを共有し、成功1件あたり公開価格 $0.002 です。
送信内容と返却内容
必須の文字列フィールド text と、任意の mode(escape または unescape)を送ってください。mode を省略すると既定は escape なので、単一ペイロードでも有用です。バックスラッシュの直後はメタ文字または別のバックスラッシュでなければならず、末尾だけのバックスラッシュ、リテラル集合外の \d や \n、一度もエスケープされていない裸のメタ文字は invalid_input とインデックスを示す英語メッセージで失敗します。成功応答は mode と元の text を返し、length と input_length、escaped_count、触れたユニークなメタ文字のソート一覧、JavaScript / PCRE 様式の短い standard ラベルを含めます。成功した API 呼び出しの料金は公開ベースの $0.002/件です。
実務でリテラル正規表現エスケープが現れる場面
本機能は純粋な parse エンジンのため、API 料金は成功1件あたり公開ベースの $0.002 のままで、検証失敗は残高を消費しません。
連携の活用例
CI で安定したゴールデンパターン
ファイル名やエラー文字列を、手作業のバックスラッシュ管理なしでテストに埋め込めるリテラル安全な断片へ変換します。
技術的な質問
双方向に変換できますか?
はい。mode=escape(既定。encode も可)はプレーンテキストをリテラル安全なパターンにし、mode=unescape(decode も可)は純粋なリテラルパターンをプレーンテキストに戻します。
料金はいくらですか?
ブラウザツールは無料でローカル実行です。API リクエストは KIT 前払い残高を成功1件あたり $0.002 で使用し、無効入力は課金されません。