ショートカット
アクション | コマンド |
---|---|
行複製 | Ctrl + I |
行削除 | Ctrl + E |
正規表現
いずれかの一文字を検索。[]
[青紫黄]色
いずれかの一文字以外を検索。[^文字]
1[^A-z0-9]3
「123」は対象外、「1あ3」は対象となる。
[ ]
内では¥
と]
以外のメタ文字は普通の文字として扱われる。
ただし、以下2つのメタ文字は[ ]
内で意味を持つため誤検索に注意。
^
を普通の文字として扱うなら後続に文字が存在しないこと、またはエスケープする。
-
を普通の文字として扱うなら前方に文字が存在しないこと、またはエスケープする。
いずれかの文字列を検索。()
(青紫|黄)色
先頭から任意の単語まで
^.*あ
先頭から任意の一文字目の単語まで。?で最短一致
^.*?あ
^(.*?あ){2}
のようにすれば 2番目までを選択できる。最短一致を2回繰り返す
先頭から任意文字の直前まで
^.*(?=あ)
注意点:先頭行でヒットした場合、例えば1行が「あい」のみの時、^.*(?=あ)
で検索すると先頭の「あ」も黄色くなるが、対象は「あ」の直前の「^」である。置換を行うと行頭に置換文字が挿入される。
「^」だけでも検索すると先頭文字全て黄色くなるが、置換を行うと行頭に挿入となる。
サクラでは「^」と「^あ」は同じ箇所が黄色くなる仕様。
先頭からではない任意文字の直前までなら.(?=あ)
でよい。
先頭から任意の一文字目の直前まで。?で最短一致
^.*?(?=あ)
3行目のsが含まれてしまっているように見えるがサクラの仕様。注意点参照
任意文字列の前方文字。(?=)肯定先読み
先読み系は検索文字列に条件を与えて、検索文字列内の前方一部分のみを置換したいときに使える。
意味
・肯定 先読み=マッチしたいワードを設定し、前方部分が置換対象
・否定 後読み=マッチしたくないワードを設定し、後方部分が置換対象
青紫(?=色) //色の直前にある青紫が対象
(?=青紫色)青紫 //青紫色の先頭から青紫 ⇒ (?=検索したい文字列の先頭を条件指定)検索する文字列
任意文字列の後方文字。(?<=)肯定後読み
肯定先読みの後方版。
(?<=青紫)色 //青紫の直後にある色が対象
任意文字列以外の前方文字。(?!)否定先読み
青紫(?!色) //青紫の直後に色がないこと
(?!青紫色)青紫 //青紫色以外の青紫
任意文字列以外の前方文字。(?<!)否定後読み
否定先読み前方版。
例えば\r\nと\nが存在し\nのみ削除したい場合は、(?<!\r)\n
となる。
(?<!青紫)色 //色の直前に青紫がないこと
行に対して検索かつマイナス検索をする
行(^.*$)に対して否定先読みを利用することで可能
※検索とマイナス検索両方に当てハマる場合は、否定先読みでマイナス検索を先に実行しているので、検索にはヒットしない。
^(?!.*マイナスA).*$ //"マイナスA"を行に含まない行を検索。(先頭^の直後に文字列.*マイナスAを含まない行.*$を検索している)
^(?!.*マイナスA).*あ.*$ //"マイナスA"を行に含まない、かつ、"あ"を含む行を検索
^(?!.*(マイナスA|マイナスB)).*(あ|い).*$ //ワード複数指定なら()を使えばいい、正規表現込みワードや長ワードも()使うと見易くなる
変数利用置換
()で囲んだ部分を$1に置き換えれる
(a.*b)x
前後入替置換
2つ目の()で囲んだ部分を$2に置き換えれる
(a.*z):(b.*x)