検索モードで[正規表現]を選択することで、正規表現による検索となります。
この正規表現はScintillaの正規表現エンジンを使用しているため、基本的な文法はScintillaのそれに従う必要があります。
なおこの正規表現エンジンは改行文字にマッチしないため、検索は行ごとに行う必要があります。Ver.6.0で、改行文字にもマッチする機能が追加されました。検索モードの[. matches newline]がそれです。
メタ文字 | マッチする文字 |
---|---|
. | |
\X | |
\Г |
メタ文字 | マッチする文字 |
---|---|
\xnn | コードnnで表現される文字。\x41 が「A」にマッチするように基本的にASCIIコードで指定するが、文書のエンコードに依存する |
\x{nnnn} | |
\Onnn | |
[[.collating sequence.]] |
文書のエンコードがANSI以外ならば、\x{nnnn}
の構文でUnicode (UTF-16) を用いてマッチさせられます。たとえば\x{3042}
は、「あ」にマッチします。また2バイトに収まらない文字はサロゲートペアで指定します。たとえば「😀」はU+1F600ですが、これはサロゲートペアによる表現\x{D83D}\x{DE00}
にマッチします。
\a
… BEL\b
… BS\e
… ESC\f
… FF\n
… LR\r
… CR\R
… 任意の改行文字\t
… TAB\Ccharacter
…メタ文字 | マッチする文字 |
---|---|
[...] | 指定の文字セット。たとえば[abc]は、a、bまたはc |
[^...] | |
[[:name:]] | nameの指定に依存 |
\pshort name | [[:name:]]と同じ。たとえば\pdは[[:d:]]に、\p{digit}は[[:digit:]]と同じ |
\p{name} | |
\Pshort name | [^[:name:]]と同じ。 |
\P{name} | |
\d | 10進数値。[[:digit:]]と同じ |
\D | 10進数値以外の文字。[^[:digit]]と同じ |
\l | |
\L | |
\u | [[:uper:]]と同じ |
\U | |
\w | 英数字。[[:word:]]と同じ |
\W | 英数字以外の文字 |
\s | ホワイトスペース (\t、\n、\r、\f、\v)。[[:space:]]と同じ |
\S | ホワイトスペース以外の文字 |
\h | |
\H | |
\v | |
\V | |
[[=primary key=]] |
Notepad++ではUnicodeプロパティのスクリプトがサポートされないため、ひらがなやカタカナに\p{Hiragana}や\p{Katakana}でマッチさせられません。よって\x{nnnn}の構文を利用して、Unicodeブロックで指定します。
文字種 | メタ文字 |
---|---|
ひらがな | [\x{3041}-\x{3096}] |
カタカナ | [\x{3041}-\x{3096}] |
漢字 | [々〇〻\x{3400}-\x{9FFF}\x{F900}-\x{FAFF}]|[\x{D840}-\x{D87F}][\x{DC00}-\x{DFFF}] |
命名されている文字クラス全体にマッチします。
メタ文字 | マッチする文字 |
---|---|
[[:alnum:]] | ASCII letters and digits |
[[:alpha:]] | ASCII letters |
[[:blank:]] | spacing which is not a line terminator |
[[:cntrl:]] | control characters |
[[:digit:]] | 10進数値 (decimal digits) |
[[:d:]] | |
[[:graph:]] | graphical character |
[[:lower:]] | lowercase letters |
[[:l:]] | |
[[:print:]] | printable characters |
[[:punct:]] | punctuation characters: , " ' ? ! ; : # $ % & ( ) * + - / < > = @ [ ] \ ^ _ { } | ~ |
[[:space:]] | whitespace |
[[:s:]] | |
[[:upper:]] | uppercase letters |
[[:u:]] | |
[[:unicode:]] | any character with code point above 255 |
[[:word:]] | word character |
[[:w:]] | |
[[:xdigit:]] | hexadecimal digits |
メタ文字 | マッチする文字 |
---|---|
+ | 直前に指定されている1つ以上の文字 |
* | |
? | |
*? | |
+? | |
{n} | n文字 |
{n,} | n文字以上の文字 |
{m,n} | |
{n,}?, {m,n}? | |
*+, ?+, ++, {n,}+, {m,n}+ |
アンカーは、行の位置にマッチします。
メタ文字 | マッチする文字 |
---|---|
^ | 行頭 (文字セット内で使用される場合を除く) |
$ | 行末 |
\< | (Scintillaで定義されている) 単語の先頭 |
\> | (Scintillaで定義されている) 単語の末尾 |
\b | 単語の先頭または末尾 |
\B | 単語の境界以外 (\bではない位置) |
\A, \' | マッチした文字列の先頭 |
\z, \` | マッチした文字列の末尾 |
\Z |
アンカーで検索し、位置にだけマッチしたときには「zero length match」とツールチップで表示されます。
[. matches newline]を有効にし、キャレットをファイルの先頭に置いた状態で^.*$
で検索すると、ファイル全体にマッチさせられます。このことから、
^.*$
ABC$&
として置換するとファイルの先頭にABCの文字列を追加でき、$&ABC
とすれば末尾に追加できます。
そのとき改行を含んだ文字列を追加するならば、置換文字列とする文字列の\r\n
を、\\r\\n
に置換した上で指定します。
メタ文字 | マッチする文字 |
---|---|
(...) | |
(?<some name>...), (?'some name'...), (?(some name)...) | |
\gn , \g{n} | |
\g{something}, \k<something> | |
\digit |
正規表現を読みやすくするために用います。
メタ文字 | 機能 |
---|---|
(:...) | グループ化するだけ |
(?#...) | コメント |
メタ文字 | 機能 |
---|---|
\Q | |
\E | |
(?:flags-not-flags ...), (?:flags-not-flags:...) | フラグを適用する
|
(?|expression using the alternation | operator) |
メタ文字 | マッチする文字 |
---|---|
| | |
(?n), (?signed-n) | |
(?0), (?R) | |
(?&name) | |
(?assertionyes-pattern|no-pattern) |
メタ文字 | マッチする文字 |
---|---|
\K | |
(?=pattern) | patternが右側にある (肯定の先読み) |
(?!pattern) | patternが右側にない (否定の先読み) |
(?<=pattern) | patternが左側にある (肯定の後読み) |
(?<pattern) | patternが左側にない (否定の後読み) |
(?>pattern) | patternが |
メタ文字 | 意味 |
---|---|
\a, \e, \f, \n, \r, \t, \v | それぞれ次の制御文字。BEL、ESC、FF、LF、CR、TAB、VT |
\l | |
\L | |
\u | |
\U | |
\E | |
$&, $MATCH, ${^MATCH} | マッチしたテキスト全体 |
$`, $PREMATCH, ${^PREMATCH} | |
$", $POSTMATCH, ${$POSTMATCH} | |
$^N, $LAST_SUBMATCH_RESULT | 最後にマッチした部分式のテキストを返す |
$+, $LAST_PAREN_MATCH | パターンの最後の部分式にマッチしたテキストを返す |
$$ | $を返す |
$n, ${n}, \n | n番目にマッチした部分式を返す (後方参照) nは、1~9の数値 置換ではいずれの形式でも可能だが、検索では\nのみ |
$+{name} | nameと名付けられた部分式を返す |