サクラエディタで指定文字より後を削除する正規表現の方法

サクラディタの置換機能で指定文字より後を削除する正規表現の書き方を2通り載せておきます。

知っていると便利です。

 

指定文字より後を削除する正規表現の書き方【位置指定子(アンカー)】

サクラディタの置換機能で指定文字より後を削除するには、正規表現を使用して以下のように書きます。

(?<=【指定する文字】).*$

 

軽く正規表現の内容の説明をしておきます。

(?<=【指定する文字】) の記述部分は、肯定的後読みとか肯定的戻り読みと呼ばれる正規表現です。

肯定的後読みは位置指定子(アンカー)に分類されます。

アンカーとは文字列内の特定の位置を表す表現です。
普通の正規表現では文字列に対してマッチしますが、アンカーは位置に対してマッチするのが特徴です。

行先頭 ^ や、行末尾を表す $ もアンカーです。

任意の文字列を表す .* と、行末を表す $ と組み合わて使用すると

直前に【指定する文字】がある任意の文字列に一致します。
【指定する文字】は含まれません。

(【指定する文字】を含む場合の正規表現は、 【指定文字】.*$ の記述でできます)

 

下記の画像の通りになります。

サクラエディタで指定文字よりも後を削除する正規表現の記述画像

 

指定文字より後を削除するには、この正規表現で基本的に十分だと思います。
(一応言っておくと、置換後には何も文字を入れない状態で、すべて置換ボタンを押せば指定文字より後が削除されます)

 

指定文字より後を削除する正規表現の書き方【文字集合(キャラクタクラス)と量指定子】

一行の中に指定したい文字が何度も現れる文字列で、特定の回数以降の指定文字より後を削除をしたいという場合には、サクラエディタの正規表現ではアンカーを使用した方法は無理だと思います。
(たぶん。めったにないと思いますが……)

そんなとき私は、文字集合と量指定子を組み合わせて、削除するようにしています。

様々な状況があると思いますが、一例のパターンを載せておきます。

 

まず、指定文字の箇所(と行末)に区切り文字を挿入します。
(ここではカンマを区切り文字としています)

サクラエディタで指定文字よりも後を削除する正規表現の記述画像

 

区切り文字を利用して、正規表現で削除したい部分を指定します。

記述方法は以下の通りです。

([^【区切り文字】]*,){【回数】}$

 

サクラエディタで指定文字よりも後を削除する正規表現の記述画像

最後に区切り文字を削除すれば、一応は目的を達成できます。

 

 

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