サクラエディタ正規表現

このページの保管用です。noindex設定してありますし、決してアクセス獲得の目的ではありません。問題があれば削除いたします。

動作置換前置換後
▼附則を削除する手動
▼(xx)xx条を1行にする
┗全角スペースを改行する「 」\r\n
┗)の後の改行を削除する)\r\n
▼x章 xxを1行にする
┗章の後の改行を削除する章\r\n
▼条文内の()内削除*複数回実行する(?<=.)([^()]+)
▼読み替え、準用するを削除する手動
▼、を削除して改行を追加\r\n
▼。を削除して改行を追加\r\n
▼「及び」の前後に改行を追加及び\r\n及び\r\n
▼「並びに」の前後に改行を追加並びに\r\n並びに\r\n
▼「若しくは」の前後に改行を追加若しくは\r\n若しくは\r\n
▼「又は」の前後に改行を追加又は\r\n又は\r\n
▼「ただし、」の前後に改行を追加ただし、\r\nただし\r\n
▼改行だけの行を削除^\r\n
▼1行30文字以上を検索^.{30,}$手動
ユーチューブで聞きやすいように一部編集してあります。①「附則」は読み上げていません②条文内の()内は読み上げていません③「準用読替」と「読替適用」は読み上げていません

対して(は)
ついて(は)
による
に係る

利用可能な正規表現

使える(かも知れない)正規表現についての解説です。すべての動作を確認することは難しく、またライブラリの更新により動作が変更になることもあります。最終的にはご自分でご確認ください。

関連:正規表現ライブラリ

基本要素

\退避修飾(エスケープ)
正規表現記号の有効/無効の制御
\の次にある正規表現記号を普通の文字として扱います。またアルファベット文字と組み合わせて特殊な意味を持たせたりします。
|選択子
パターンの論理和
(...)式集合(グループ)
パターンをグループ化。
[...]文字集合(文字クラス)
キャラクタクラス。

文字集合(キャラクタクラス)

[...] の中に以下のものが指定可能です。

...
[ABC]はAかBかCのどれかにマッチします。
^...否定
[^ABC]はAとBとC以外の任意の1文字にマッチします。
x-y範囲
[A-Z]は、「A」から「Z」までの文字のどれか1つとマッチします。
[...](鬼) 文字集合内文字集合
..&&..(鬼) 積演算
[:xxxxx:](鬼) POSIXブラケット
[:^xxxxx:](鬼) POSIXブラケット(否定)

(鬼) はbregonig.dllのみ

量指定子(数量子)

最小一致
(無欲)
最大一致
(欲張り)
*?*直前のパターンの0回以上の繰り返し
+?+直前のパターンの1回以上の繰り返し
???直前のパターンが0回または1回現われる
{n}?{n}直前のパターンの n 回の繰り返し
{n,}?{n,}直前のパターンの n 回以上の繰り返し
{n,m}?{n,m}直前のパターンが n 回以上、 m 回以下

正規表現Aを[A-Z_]*PROC 、正規表現Bを[A-Z_]*?PROC とします。
     SAKURA_COLLBACKPROC_BREXP_PROC
という文字列中で、最初にマッチするのは以下のようになります。
    Aの場合: SAKURA_COLLBACKPROC_BREXP_PROC
    Bの場合: SAKURA_COLLBACKPROC

文字

\t水平タブコード(HT,TAB)
\nラインフィード(LF)
\rキャリッジリターン(CR)
\b後退空白/バックスペース(BS)
[ ]の中でのみ有効
\fフォームフィード/改ページ(FF)
\a鐘/アラーム(BEL)
\e退避修飾/エスケープコード(ESC)
\ooooに8進数で文字コードを指定する (oは1~3桁)
\xHHHに16進数で文字コードを指定する (Hは1~2桁)
\x{HHHH}(鬼) 拡張16進数表現(Hは1~4桁)
\c[コントロール文字([はコントロール文字)
\Q(鬼) \Eに至るまで 正規表現演算子(正規表現記号)を抑制します
\E(鬼) 正規表現演算子(正規表現記号)の抑制状態を終端します

(鬼) はbregonig.dllのみ

文字種

.\nを除く任意の1文字 [^\n]と同じ
(Unicode版) 改行を除く任意の1文字。[^\r\n]と同じ *1
\w単語の構成文字 [0-9A-Za-z_]と同じ
(鬼) 2バイト文字も含む
\W単語の構成文字以外
\s空白類文字 [ \t\v\x0a\x0d]と同じ
(鬼) [:space:]と同じ
\S空白類文字以外
\d10進数字
(Unicode版) 2バイト文字=全角数字も含む
\D10進数字以外
\p{property-name}(鬼) キャラクタプロパティ
\p{^property-name}
\P{property-name}
(鬼) キャラクタプロパティ(否定)

(鬼) はbregonig.dllのみ
(Unicode版) はUnicode版のサクラエディタ

位置(錨)

^行頭
$行末
\b単語の境界
[ ]の中ではバックスペースの意味になります
\B単語の境界以外
\A文字列の最初
\Z文字列の最後(最後が改行ならば改行の直前)
\z(鬼) 文字列の最後
\G照合開始位置

(鬼) はbregonig.dllのみ

後方参照と部分式呼び出し

\n番号指定による後方参照
( )でグループ化した文字列を、\n(nは1以上の整数)で参照します。
\k<name>
\k'name'
(鬼) 名前指定による後方参照
\k<name+n>
\k<name-n>
\k'name+n'
\k'name-n'
(鬼) ネストレベル付き後方参照
\g<name>
\g'name'
(鬼) 名前指定部分式呼出し
\g<n>
\g'n'
(鬼) 番号指定部分式呼出し

(鬼) はbregonig.dllのみ

拡張式集合

(?#...)注釈
(式)捕獲式集合
(?:式)非捕獲式集合 (グループ化のみ)
(?<name>式)
(?'name'式)
(鬼) 名前付き捕獲式集合
(?=式)先読み
(?!式)否定先読み
(?<=式)(鬼) 戻り読み
(?<!式)(鬼) 否定戻り読み
(?>式)(鬼) 原子的式集合
(?imsx)孤立オプション
i: 大文字小文字照合
m: 複数行(サクラエディタではデフォルトでon)
s: 単一行 (. が \n にもマッチ)
x: 拡張形式(空白を無視、# 以降を無視)
(?imsx-imsx)(鬼) 孤立オプション(bregonig.dllではオプションの否定が可能)
(imsx-imsx:式)(鬼) 式オプション

(鬼) はbregonig.dll のみ

置換で使える参照

「置換後」に指定して使います。

$n番号指定参照
( )でグループ化した文字列を、$n(nは1以上の整数)で参照します。
サクラエディタでは$nの代わりに\nも使用できます。
${n}(鬼) (安全な)番号指定参照
後ろにそのまま続けて数字を書くことができます。
$&マッチした文字列全体
$+(鬼) 最後にマッチした部分文字列
$+{name}
$-{name}[n]
(鬼) 名前指定参照(Perl 5.10 互換、推奨)
\k<name>
\k'name'
(鬼) 名前指定参照(鬼車準拠)
${name}(鬼) 名前指定参照(独自拡張、暫定仕様のため非推奨)

(鬼) はbregonig.dllのみ

bregonig.dllへの変更による違い

  • \w は2バイト文字も含む。
    \w は [A-Za-z0-9_] に加え、2バイト文字も含みます。これに応じて、\W, \b, \B の動作も変更になります。
  • [ ] の中に [ を書くときは必ずエスケープが必要。
    文字集合の中で文字集合や積演算が使えるようになる代わりに、[ そのものを書くときは必ず \[ と書かなければならなくなりました。
  • \c\ の動作が異なる。
    Bregexp.dll では、\c\ は Ctrl+\ を意味していますが、bregonig.dll では、\c の次の \ はエスケープとして解釈されます。Ctrl+\ を指定するには \c\\とする必要があります。(Perl の仕様と異なるため、変更される可能性があります。)
  • 置換で \ooo の動作が少し異なる。
    Perl の動作に近づけてあります。
  • Unicode版は i オプションの動作が異なる。
    大文字小文字を区別しないの動作が ASCII 範囲外にも影響します。
    Unicode版サクラエディタの通常検索・置換も ASCII 範囲外の大文字小文字の考慮をしますが、2つが同じかどうかは未チェックです。

改行の検索

サクラエディタで改行(CRLF)を検索する場合は、
\r\n で検索して下さい。
改行(CR,LF,CRLFのすべて)を検索する場合は、
[\r\n]+ のように指定してください。
改行(CR,LF,CRLF)と、最終行の行末を検索する場合は、
$ と指定してください。


hint

ヒント
正規表現を検索、置換、Grepで利用する場合、「/」をエスケープしたり、「/」で囲ったりする必要はありません。
正規表現キーワードで使う場合は、/text\/css/k のように「/」をエスケープするか m#text/css#k のように書く必要があります。

hint

追加情報
検索、置換、Grepでは、正規表現ライブラリに渡す文字列を以下のようにしています。[DELIMITER]は、0xffのバイナリ表記とします。
Unicode版では U+FFFF です。
検索時のオプションは「m[DELIMITER]Pattern[DELIMITER]km」です。
置換時のオプションは「s[DELIMITER]PatternBefore[DELIMITER]PatternAfter[DELIMITER]km」です。
デリミタ相当の文字を検索・置換するにはエスケープが必要です。
また大文字小文字を区別しない場合は最後に「i」が付加されます。
すべて置換で「すべて置換は置換の繰返し」がOFFの場合は「g」が付加されます。
(mオプションが付いていますが、改行をまたいだ検索はできません。)