InDesignの正規表現の記法と、その例を正規表現スタイルにしたマッチング結果のサンプルを一覧にしています。
まだ作成途中です。まずは「文字を表すもの」の作成から始めています。
正規表現スタイルでのマッチング結果には、該当箇所をピンク色の文字で示しました。
検証したバージョンは、InDesign2023です。
文字を表すもの
リテラル:(文字そのもの)
正規表現の例:
リテラル
入力した文字そのもにマッチ。
正規表現スタイルでのマッチング結果:

任意の1文字: .(ドット)
正規表現の例:
任意の.文字
任意の1文字には、空白も含むので「任意の 文字」にもマッチする。
改行文字は含まないので「任意の¶文字」にはマッチしない。
正規表現スタイルでのマッチング結果:

タブ文字:\t
正規表現の例:
\t区切り
「Tab」キーで入力したタブ文字は、InDesignの画面では「 » 」で表される。
正規表現スタイルでのマッチング結果:

改行文字:\r
正規表現の例:
改行\r
改行文字は、右手のShiftキーの上あたりにある「enter」キーで入力。
InDesignでは、テンキー近くの「enter」は「改フレーム」になる。
正規表現スタイルでのマッチング結果:

強制改行:\n
正規表現の例:(InDesign拡張機能)
強制改行\n
強制改行は、Shift+Enterで入力。
見た目には改行されるが、同一の段落として扱われる。
正規表現スタイルでのマッチング結果:

数字:\d
正規表現の例:
\d
「数字」なので、当然ながら桁カンマやピリオドにはマッチしない。
正規表現スタイルでのマッチング結果:

数字以外の文字:\D
正規表現の例:
\D
数字以外の全てにマッチする。改行・強制改行などにもマッチ。
正規表現スタイルでのマッチング結果:

ホワイトスペース:\s
正規表現の例:
space\s
タブ文字・改行・強制改行と、InDesignのメニュー[書式]-[空白文字を挿入]から入力できるスペースにマッチ。
例ではマッチしているかどうかを明確にするため下線をつけた。
正規表現スタイルでのマッチング結果:

スペース以外の文字:\S
正規表現の例:
\S
\sではない文字にマッチ。
例ではマッチしていないことを明確にするため、スペース以外には下線をつけた。(スペースは拡大)
正規表現スタイルでのマッチング結果:

任意の単語文字:\w
正規表現の例:
\w
一般的に「任意の単語」は「_(アンダーバー)を含む英数文字」だが、InDesignでは和文にもマッチしてしまう。
正規表現スタイルでのマッチング結果:

任意の単語文字以外:\W
正規表現の例:
\W
「\w」でマッチする文字以外。
この「\W」も「\w」と同様に、InDesignでは和文にはアンマッチ。
正規表現スタイルでのマッチング結果:

任意の大文字:\u
正規表現の例:
\u
全角・半角両方の大文字にマッチ。
ギリシャ文字・異字体にもマッチする。
正規表現スタイルでのマッチング結果:

大文字以外の文字:\U
正規表現の例:
\U
「\u」以外の文字にマッチ。
正規表現スタイルでのマッチング結果:

任意の小文字:\l
正規表現の例:
\l
ギリシャ文字・異字体にもマッチ。
正規表現スタイルでのマッチング結果:

小文字以外の文字:\L
正規表現の例:
\L
「\l」以外の文字にマッチ。
正規表現スタイルでのマッチング結果:

欧文アルファベット文字:[\l\u]
正規表現の例:
[\l\u]
「\l」と「\u」を組み合わせると、大文字と小文字の両方にマッチする。
ギリシャ文字・異字体にもマッチ。
正規表現スタイルでのマッチング結果:
![InDesignの正規表現検索で「[\l\u]」の検索結果で、欧文アルファベット文字がマッチしている例](https://dtpscriptin.com/wp-content/uploads/2023/05/reg-sample0160-lu.jpg)
漢字:~K
正規表現の例:
~K
\(バックスラッシュ)は使わず「~K」と書く。
CJK統合漢字に一致する(らしい)。
正規表現スタイルでのマッチング結果:

メタ文字のエスケープ:\
正規表現の例:
\\
\.
\~
\$
正規表現としての意味を持つ記号は、その文字の前に「\」を置くと一般の文字として認識される。
その他の文字も「\」に続く文字は一般の文字として認識される。
例えば「\A」は「A」を表す。
正規表現スタイルでのマッチング結果:

文字コード(16進数)検索:\x{16進数コード}
正規表現の例:
\x{5B57}
文字コード「5B57」の「字」にマッチする。
正規表現スタイルでのマッチング結果:

英数字(Posix):[[:alnum:]]
正規表現の例:
[[:alnum:]]
Posix正規表現。
InDesignでは英数字以外の和文もマッチしてしまう。
否定はカレットをつける。
[[:^alnum:]]
正規表現スタイルでのマッチング結果:
![InDesignのPosix正規表現検索で「[[:alnum:]]」の検索結果で、英数字がマッチしている例](https://dtpscriptin.com/wp-content/uploads/2023/05/reg-sample0200-alnum.jpg)
アルファベット(Posix):[[:alpha:]]
正規表現の例:
[[:alpha:]]
Posix正規表現。
InDesignではアルファベット以外の和文もマッチしてしまう。
否定はカレットをつける。
[[:^alpha:]]
正規表現スタイルでのマッチング結果:
![InDesignのPosix正規表現検索で「[[:alpha:]]」の検索結果で、アルファベットがマッチしている例](https://dtpscriptin.com/wp-content/uploads/2023/05/reg-sample0210-alpha.jpg)
数字(Posix):[[:digit:]]
正規表現の例:
[[:digit:]]
Posix正規表現。
\dまたは[0-9]と同じ。
否定はカレットをつける。[[:^digit:]]
正規表現スタイルでのマッチング結果:
![InDesignのPosix正規表現検索で「[[:digit:]]」の検索結果で、数字がマッチしている例](https://dtpscriptin.com/wp-content/uploads/2023/05/reg-sample0220-digit.jpg)
アルファベット小文字(Posix):[[:lower:]]
正規表現の例:
[[:lower:]]
Posix正規表現。
否定はカレットをつける。
[[:^lower:]]
正規表現スタイルでのマッチング結果:
![InDesignのPosix正規表現検索で「[[:lower:]]」の検索結果で、アルファベット小文字がマッチしている例](https://dtpscriptin.com/wp-content/uploads/2023/05/reg-sample0230-lower.jpg)
記号文字(Posix):[[:punct:]]
正規表現の例:
[[:punct:]]
Posix正規表現。
ASCII内の記号文字(パンクチュエーション)と、その字形集合(とされている)。
否定はカレットをつける。
[[:^punct:]]
正規表現スタイルでのマッチング結果:
![InDesignのPosix正規表現検索で「[[:punct:]]」の検索結果で、記号文字がマッチしている例](https://dtpscriptin.com/wp-content/uploads/2023/05/reg-sample0240-punct.jpg)
スペース(Posix):[[:space:]]
正規表現の例:
space[[:space:]]
Posix正規表現。
例では「space」に続く[[:space:]]を、マゼンタ100+下線にしている。
否定はカレットをつける。
[[:^space:]]
正規表現スタイルでのマッチング結果:
![InDesignのPosix正規表現検索で「space[[:space:]]」の検索結果で、「space」とそれに続くスペースがマッチしている例](https://dtpscriptin.com/wp-content/uploads/2023/05/reg-sample0250-space.jpg)
アルファベット大文字(Posix):[[:upper:]]
正規表現の例:
[[:upper:]]
Posix正規表現。
否定はカレットをつける。
[[:^upper:]]
正規表現スタイルでのマッチング結果:
![InDesignのPosix正規表現検索で「[[:upper:]]」の検索結果で、アルファベット大文字がマッチしている例](https://dtpscriptin.com/wp-content/uploads/2023/05/reg-sample0260-upper.jpg)
単語文字(Posix):[[:word:]]
正規表現の例:
[[:word:]]
Posix正規表現。
一般的には[[:alnum:]]とアンダーバーだが、InDesignでは和文にもマッチしてしまう。
否定はカレットをつける。
[[:^word:]]
正規表現スタイルでのマッチング結果:
![InDesignのPosix正規表現検索で「[[:word:]]」の検索結果で、単語文字がマッチしている例](https://dtpscriptin.com/wp-content/uploads/2023/05/reg-sample0270-word.jpg)
16進数字(Posix):[[:xdigit:]]
正規表現の例:
[[:xdigit:]]
Posix正規表現。
16進数字を表現する際に使われる文字(0〜9、A〜F、a〜f)にマッチ。
InDesignでは対象文字の異字体の一部にもマッチする。
正規表現スタイルでのマッチング結果:
![InDesignのPosix正規表現検索で「[[:xdigit:]]」の検索結果で、16進数で使われるアルファベットと数字がマッチしている例](https://dtpscriptin.com/wp-content/uploads/2023/05/reg-sample0280-xdigit.jpg)
字形セット(Posix):[[=A=]](「A」は任意の文字)
正規表現の例:
[[=A=]]
[[=う=]]
特定文字の字形セットにマッチ。
ここでの[[=A=]]は、半角大文字のA。
正規表現スタイルでのマッチング結果:
![InDesignのPosix正規表現検索で「[[=A=]]」「[[=う=]]」の検索結果で、「A」と「う」のそれぞれの文字と異字体がマッチしている例](https://dtpscriptin.com/wp-content/uploads/2023/05/reg-sample0290-glyphset.jpg)
位置を表すもの
段落の先頭: ^
正規表現の例:
^InDesign
行の先頭にある「InDesign」にマッチ。
強制改行した場合の先頭にもマッチする。
行中の「InDesign」にはマッチしない。
正規表現スタイルでのマッチング結果:

段落の末尾: $
正規表現の例:
。$
行末の「。」にマッチ。
強制改行にはマッチするが、自然改行の行末にはマッチしない。
正規表現スタイルでのマッチング結果:

ストーリーの先頭: \A
正規表現の例:
\Aおはなし
ストーリーの先頭の「おはなし」にマッチ。
連結した2番目以降のテキストフレームの先頭の「おはなし」にはマッチしない。
正規表現スタイルでのマッチング結果:

ストーリーの末尾: \Z
正規表現の例:
行目\Z
ストーリー末尾の「行目」にマッチ。
ストーリーの最後に改行があるとマッチしない。
正規表現スタイルでのマッチング結果:

コメント