正規表現の特殊文字をエスケープしてペーストするSublime Text3プラグイン

名称未設定-2
ST3

正規表現による検索や置換は便利ですが、エディタ上で使う場合は$や\や?などの特殊文字をエスケープする必要があります。

たとえば、以下の様な文章を検索したい場合、$や:や)などは前にバックスラッシュ(\)を付けないといけません。

[text]
This item is $500:)
この商品は500円(1$=100円として換算)です^^

↓ この文章そのままを検索する場合、以下を検索する必要がある

This item is \$500\:\)
この商品は500円\(1\$\=100円として換算\)です\^\^
[/text]

Sublime Textの検索・置換でエスケープが必要な文字は
. \ + * ? [ ^ ] $ ( ) { } = ! < > |
です。…多分。足りない・余計などがあればご指摘ください_(._.)_

特殊文字が多ければ多いほどこのエスケープを書くのが面倒なので、ペースト時に特殊文字をエスケープしてくれるSublime Text3用のプラグインを書きました。

ST3RegExpPaste

コピーしたテキストをペーストする際、「ctrl+shift+v」を押すと特殊文字をエスケープしてから貼り付けを行います。また、ダブルクォーテーション内を(.+?)に置換するという処理も行います。

zipでダウンロードして、Winユーザーの場合は

C:\Users\ユーザー名に\AppData\Roaming\Sublime Text 3\Packages

内に入れると動きます。

AD

機能

文字列をコピーしてからCtrl+shift+vを押すと、

1.ペーストする前に「. \ + * ? [ ^ ] $ ( ) { } = ! < > |」を\でエスケープします。

2.""で囲まれた文字列を"(.+?)"に書き換えます。

3.通常のペースト処理を行います。

クリップボードの書き換えを行ってペーストしているので、入力エリアだけでなく検索ウインドウやコンソールでも発動します。
※さすがに「ファイルを開く」ダイアログ上では機能しなかった。

実例

(.+?)への置換が不要な場合

ST3RegExpPaste.pyの以下の行をコメントアウトしてください。

注意

get_clipboard、set_clipboardという関数でクリップボードのテキストを直接書き換えてます。
クリップボード監視ソフトなどを使っている場合は迷惑がかかるかもしれません。

AD

Share

Commentsコメント

メールアドレスは公開されません。コメントは必ずご入力ください。

HTMLタグは使用できません。ソースコードを書き込みたい場合はCodetterGistCodePenなどのご利用が便利です。

コメントはまだありません。