ユーザー定義のエンティティ
ユーザー定義のテキスト エンティティを作成すると、よく使われる単語やフレーズを再利用できます。PERL/POSIX 検索式を適用して、ユーザー定義のテキスト エンティティを設定することもできます。このトピックは初めて正規表現を作成する方向けに書かれ、リファレンス ガイドとしても使用できます。
正規表現を過度に使用すると、システムのパフォーマンスに大きな影響を与えることがあります。可能な限り、正規表現の使用は控えるようにすることをおすすめします。 |
情報...
-
このトピックで使用される用語
アトム
単一の文字、または、() か [] で囲まれた検索式です。アトムには、* などの繰り返しのメタ文字やバウンド {} を適用できます。
検索式
シンプルなキーワード、フレーズ内の単語を順番に並べたリスト、または、正規表現です。
通常文字
半角英数字 (A-Z、a-z、0-9) です (ユーザー定義のテキスト検索式で使用されます)。
区切り文字
通常文字または空白文字として分類される以外のすべての文字です。このクラスには、ハイフンとアンダースコア文字が含まれます(ユーザー定義のテキスト検索式で使用されます)。
空白文字です。 空白文字です。空白文字で始まるか終わるカスタム検索式は作成しないようにします。 単語
空白文字または区切り文字 (または文字列の始まりか終わり) で区切られる半角英数字の文字列です。区切り文字を含み、複数の「テキスト検索式での単語」に分割される、プレーンテキストの検索式またはユーザー定義の検索式に記述される単語を意味します。
「単語」文字の正規表現での定義は微妙に異なります。詳細については文字クラスを参照してください。
次の文字を使って正規表現を設定できます:
-
PERL/POSIX 正規表現構文
。
すべての単一の文字。
^
アンカー文字。行の先頭に一致します。
$
アンカー文字。行の末尾に一致します。
()
部分式です。かっこ内の検索式を分離し、繰り返しのメタ文字の対象にしたり、後方参照演算子で参照したりできるようにします。
これらの演算子の詳細については、後述の項目を参照してください。
|
OR 演算子です。演算子の前または後の検索式に一致します。
たとえば、"a|b" は "a" または "b" に一致します。
*
直前のアトムの 0 回以上の繰り返しです。
たとえば、“ab*c” は “ac”、“abc”、“abbbbbbbbc” などに一致し、“(he)*” は“he”、“hehehehehehe” などに一致します。
+
直前のアトムの 1 回以上の繰り返しです。
?
直前のアトムの 0 回または 1 回の出現です。
{x}
繰り返しの回数です。直前のアトムのちょうど 'x' 回の出現に一致します。
{x,y}
直前のアトムの 'x' ~ 'y' 回 (それぞれの値を含む) の出現に一致します。
{x,}
直前のアトムの 'x' 回以上 (x を含む) の出現に一致します。
x?
繰り返しのメタ文字 'x' の最短の繰り返しです。
前述の繰り返し演算子は、できる限り長い文字列に一致します (最長一致)。繰り返しのメタ文字の後に "?" を付けると、最短の繰り返しに一致します。つまり、できる限り短い一致になります。
たとえば、“It went on and on and on." という文字列で、“went.{2,}on” は “went on and on and on” に一致し、“went.{2,}?on” は “went on and on” に一致します。
\n
後方参照。部分式 'n' で一致した文字列に一致します。'n' は 1 ~ 9 の数字です。
たとえば、“(.+)-\1” は “abc-abc” と “1234-1234” に一致しますが、“abc-1234” には一致しません。
\x
'x' にはメタ文字が入り、この構文は 'x' をメタ文字ではなく、そのままの文字として扱うことを指定します。たとえば、"\$" は "$" に一致します。"‘\\" は "\" に一致します。
x は定義済みのエスケープ シーケンス文字 (または文字のシーケンス) で、エスケープ シーケンスで定義される文字または文字クラスに一致します。
エスケープ シーケンスの詳細については、以下の表を参照してください。
[]
文字セットです。リストに含まれるすべての 1 文字に一致します。たとえば、“[abc]” は "a"、"b" または “c” に一致します。
文字セット全体が繰り返しのメタ文字の対象になります。たとえば、“[abc]*” は “aabcac” に一致しますが、“abcdcba” には一致しません。
[^]
否定文字セットです。文字セットに含まれないすべての 1 文字に一致します。
たとえば、“[^bc]” は “a” と “b” に一致しますが、“b" または "c” には一致しません。
[x-y]
文字範囲です。'x' ~ 'y' の範囲の 1 文字に一致します。たとえば、"[a-c]" は "a"、"b" または "c" に一致します。
範囲の端点は正しい順番にする必要があります。つまり、最初の端点は 2 番目の端点よりも Unicode コードポイントの順番で前にする必要があります。文字セットに '-' (ハイフン) 文字そのものを含めるには、最初または最後の文字として入力します。
[:x:]
文字クラスです。定義済みの文字セットです。文字クラスは文字セット内でのみ使用できます。たとえば、“[[:digit:]]” はすべての数字に一致します。
使用できる文字クラスの表については後述の項目を参照してください。
(?#comment)
コメントです。‘#’ と最後の ‘)’ の間のテキストは無視されます。後で参照するために、検索式がどのように動作するかを説明する際に使用できます。“(?#3 文字)[[:alpha:]]{3}(?#後に 5 桁)[[:digit:]]{5}”
(?=pattern)
肯定先読みです。‘pattern’ が一致する場合に一致を返します。現在の参照点は移動しないため、後続の検索式は同じ位置から照合します。2 つ以上の正規表現の論理積に使用できます。たとえば、“(?=.*[[:lower:]])(?=.*[[:upper:]])” は、文字列に大文字と小文字があることを確認します。
(?!pattern)
否定先読みです。‘pattern’ が一致しない場合に一致を返します。現在の参照点は移動しないため、後続の検索式は同じ位置から照合します。
(?
<
=pattern)肯定後読みです。‘pattern’ が現在の参照点の直前に一致する場合に一致を返します。現在の参照点は移動しないため、後続の検索式は同じ位置から照合します。
(?
<
!pattern)否定後読みです。‘pattern’ が現在の参照点の直前に一致しない場合に一致を返します。現在の参照点は移動しないため、後続の検索式は同じ位置から照合します。
(?
>
pattern)独立した部分式です。大きな検索式を試行して照合するために、‘pattern’ へのバックトラッキングを許可しない部分式です。大きな検索式を試行して照合するために、‘pattern’ へのバックトラッキングを許可しない部分式です。この演算子を使うと、パフォーマンスが大幅に向上します。たとえば、“([ab]+)[bc]+” は “abb” に一致します。“(?>[ab]+)[bc]+” は “abb” に一致しませんが、“abc” に一致します。
(?(condition)true|false)
条件付き検索式です。‘condition’ が真の場合、‘true’ パターンの照合を試行します。‘condition’ が偽の場合、‘false’ パターンの照合を試行します。条件は、先読みかマーク済み部分式のインデックスを使用できます。
(?(condition)true)
条件付き検索式です。‘condition’ が真の場合、‘true’ パターンの照合を試行します。‘condition’ が偽の場合、検索式は一致を返しません。条件は、先読みかマーク済み部分式のインデックスを使用できます。
-
文字クラス
[:alnum:]
すべての半角英数字です。
注記: 注記:ラテン言語のアルファベット文字に制限されません。
[:alpha:]
すべての半角英字です。
注記: 注記:ラテン言語のアルファベット文字に制限されません。
[:blank:]
行区切り文字を除くすべての空白文字です。
[:cntrl:]
すべての制御文字です。
[:d:]
[:digit:]
すべての 10 進数字です。
[:graph:]
すべての表示文字です。
[:l:]
[:lower:]
すべての小文字です。この文字クラスは、大文字と小文字を区別しない検索式の設定によって影響されません。
[:print:]
すべての印刷可能な文字です。
[:punct:]
すべての区切り文字です。
[:s:]
[:space:]
すべての空白文字です。
[:unicode:]
コード ポイントが 255 より大きいすべての拡張文字です。
[:u:]
[:upper:]
すべての大文字です。この文字クラスは、大文字と小文字を区別しない検索式の設定によって影響されません。
[:w:]
[:word:]
すべての半角英数字とアンダースコア文字です。
[:xdigit:]
すべての 16 進数字です。
上記は文字セット内でのみ使用できます。 -
エスケープ シーケンス
\a ’
ベル文字です。
\e
エスケープ文字です。
\f
フォームフィード (改ページ) 文字です。
\n
ニューライン (改行) 文字です。
\r
キャリッジ リターン (復帰) 文字です。
\t
タブ文字です。
\v
垂直タブ文字です。
\b
バックスペース文字 (文字セット宣言内のみ) です。
\cd
ASCII エスケープ シーケンス - コード ポイント d % 32 の文字です。
\xhh
16 進数エスケープ シーケンス - コード ポイント 0xhh の文字です。
\x{hhhh}
16 進数エスケープ シーケンス - コード ポイント 0xhhhh の文字です。
\0ddd
(\ゼロ) 8 進数エスケープ シーケンス - コード ポイント 0ddd の文字です。
\N{name}
シンボリック名 name を持つ単一の文字と一致します。使用できる識別名の表については後述の項目を参照してください。
\d
すべての数字に一致します。
\l
すべての小文字に一致します。このエスケープ シーケンスは、大文字と小文字を区別しない検索式の設定によって影響されません。
\s
すべての空白文字に一致します。
\u
すべての大文字に一致します。このエスケープ シーケンスは、大文字と小文字を区別しない検索式の設定によって影響されません。
\w
すべての半角英数字とアンダースコア文字に一致します。
\D
数字ではないすべての文字に一致します。
\L
小文字ではないすべての文字に一致します。このエスケープ シーケンスとすべての大文字のマッチングには違いがあります。一部の文字は大文字と小文字の区別がないため、このエスケープ シーケンスに一致します。
\S
空白文字ではないすべての文字に一致します。
\U
大文字ではないすべての文字に一致します。このエスケープ シーケンスとすべての小文字のマッチングには違いがあります。一部の文字は大文字と小文字の区別がないため、このエスケープ シーケンスに一致します。
\W
半角英数字とアンダースコア文字ではないすべての文字に一致します。
\px
1 文字の文字クラス “[[:x:]]” と同じです。たとえば、“\pd” はすべての数字に一致します。
\p{name}
文字クラス “[[:name:]]” と同じです。たとえば、“\p{punct}” はすべての区切り文字に一致します。
\Px
1 文字の否定文字クラス “[[:x:]]” と同じです。たとえば、“\Pd” は数字ではないすべての文字に一致します。
\P{name}
文字クラス “[[:name:]]” と同じです。たとえば、“\p{punct}” は区切り文字ではないすべての文字に一致します。
\<
単語の境界の先頭にある NULL 文字列に一致します。この場合の「単語」は正規表現の用語で、テキスト検索式の用語ではありません。詳細については文字クラスを参照してください。
\>
単語の境界の末尾にある NULL 文字列に一致します。この場合の「単語」は正規表現の用語で、テキスト検索式の用語ではありません。
詳細については文字クラスを参照してください。
\b
単語の境界の先頭または末尾にある NULL 文字列に一致します。この場合の「単語」は正規表現の用語で、テキスト検索式の用語ではありません。詳細については文字クラスを参照してください。
\B
単語の境界にない場合に一致します。この場合の「単語」は正規表現の用語で、テキスト検索式の用語ではありません。詳細については文字クラスを参照してください。
\`
検索するテキストの先頭に一致します。行の先頭に一致するアンカー文字 ‘^’ とは微妙に異なります。
\’
検索するテキストの末尾に一致します。行の末尾に一致するアンカー文字 ‘$’ とは微妙に異なります。
\A
検索するテキストの先頭に一致します。機能としては ‘\`’ と同じです。
\z
検索するテキストの末尾に一致します。機能としては ‘\’’ と同じです。
\C
すべての単一のコード ポイントに一致します。機能としては ‘.’ と同じです。
上記のエスケープ シーケンスでは大文字と小文字が区別されます。
エスケープされたメタ文字を除くその他のエスケープ シーケンスは未定義で、予期しない結果になる可能性があるため、使用しないでください。
-
識別名
名前 文字 NUL
\x00
SOH
\x01
STX
\x02
ETX
\x03
EOT
\x04
ENQ
\x05
ACK
\x06
警告
\x07
バックスペース
\x08
タブ
\t
ニューライン (改行)
\n
垂直タブ
\v
フォームフィード (改ページ)
\f
キャリッジ リターン (復帰)
\r
SO
\xE
SI
\xF
DLE
\x10
DC1
\x11
DC2
\x12
DC3
\x13
DC4
\x14
NAK
\x15
SYN
\x16
ETB
\x17
CAN
\x18
EM
\x19
SUB
\x1A
ESC
\x1B
IS4
\x1C
IS3
\x1D
IS2
\x1E
IS1
\x1F
スペース
\x20
感嘆符
!
引用符
"
番号記号
#
ドル記号
$
パーセント記号
%
アンパサンド
&
アポストロフィ
'
左かっこ
(
右かっこ
)
アスタリスク
*
プラス記号
+
コンマ
、
ハイフン
-
ピリオド
。
スラッシュ
/
ゼロ
0
1
1
2
2
3
3
4
4
5
5
5
6
6
7
7
8
8
9
コロン
:
セミコロン
:
小なり記号
<
等号
=
大なり記号
>
疑問符
?
単価記号
@
左角かっこ
[
バックスラッシュ (円記号)
\
右角かっこ
]
曲折アクセント記号
~
アンダースコア
_
抑音アクセント
`
左波かっこ
{
垂直線
|
右波かっこ
}
チルダ
~
チルダ DEL
\x7F
識別名は照合要素でのみ使用できます。