Unicode 文字プロパティ
PHP 5.1.0 以降、UTF-8 モード を設定した場合に、 一般的な文字タイプにマッチする新たなエスケープシーケンスが 3 つ追加されました。
- \p{xx}
- xx プロパティを持つ文字
- \P{xx}
- xx プロパティを持たない文字
- \X
- 拡張 Unicode シーケンス
ここで xx
で表されているプロパティ名は、Unicode で
一般カテゴリプロパティ (general category properties) として規定されているものに
なります。すべての文字は、いずれかひとつのプロパティを持ちます。
プロパティは、2 文字の略語で表されます。Perl と同じく、
開き波カッコとプロパティ名との間にハット文字を記述することで否定を指定できます。
たとえば、\p{^Lu}
は \P{Lu}
と同じです。
\p
もしくは \P
の後に、一文字だけを記述すると
その文字で始まるすべてのプロパティが指定されたことになります。
この場合、否定の指定をしていない場合、波カッコを使用しなくても構いません。
以下の 2 つの例は等価になります。
\p{L} \pL
プロパティ | マッチ | 備考 |
---|---|---|
C |
その他 (Other) | |
Cc |
コントロール文字 (Control) | |
Cf |
非可視整形用文字 (Format) | |
Cn |
未定義コードポイント (Unassigned) | |
Co |
私的利用領域 (Private use) | |
Cs |
サロゲート (Surrogate) | |
L |
アルファベット (Letter) |
Ll 、
Lm 、Lo 、Lt および
Lu を含む
|
Ll |
小文字アルファベット (Lower case letter) | |
Lm |
擬似文字 (Modifier letter) | |
Lo |
その他の文字 (Other letter) | |
Lt |
タイトル文字 (Title case letter) | |
Lu |
大文字アルファベット (Upper case letter) | |
M |
記号 (Mark) | |
Mc |
修飾文字 (Spacing mark) | |
Me |
他の文字を囲むための文字 (Enclosing mark) | |
Mn |
他の文字を修飾するための文字 (Non-spacing mark) | |
N |
数字 (Number) | |
Nd |
10 進数字 (Decimal number) | |
Nl |
数値を表す文字 (Letter number) | |
No |
その他の数字 (Other number) | |
P |
句読記号 (Punctuation) | |
Pc |
連結用句読記号 (Connector punctuation) | |
Pd |
ダッシュ (Dash punctuation) | |
Pe |
閉じ句読記号 (Close punctuation) | |
Pf |
末尾句読記号 (Final punctuation) | |
Pi |
先頭句読記号 (Initial punctuation) | |
Po |
その他の句読記号 (Other punctuation) | |
Ps |
開き句読記号 (Open punctuation) | |
S |
記号 (Symbol) | |
Sc |
通貨記号 (Currency symbol) | |
Sk |
合わせ文字 (Modifier symbol) | |
Sm |
数学記号 (Mathematical symbol) | |
So |
その他の記号 (Other symbol) | |
Z |
区切り文字 (Separator) | |
Zl |
行区切り文字 (Line separator) | |
Zp |
段落区切り文字 (Paragraph separator) | |
Zs |
空白文字 (Space separator) |
InMusicalSymbols
のような拡張プロパティ (extended properties)
を、PCRE はサポートしていません。
大小文字を区別しないマッチングを設定していても、これらのエスケープ
シーケンスには影響しません。たとえば、\p{Lu}
は
常に大文字にのみマッチします。
Unicode の文字は、何らかのスクリプトに属するものとして定義されています。 スクリプト名を指定すれば、そのスクリプトの文字群の一文字にマッチさせることができます。 たとえば、次のように使います。
-
\p{Greek}
-
\P{Han}
どのスクリプトにも属しない文字は、ぜんぶまとめて
Common
で表します。現在サポートするスクリプトは次のとおりです。
Arabic |
Armenian |
Avestan |
Balinese |
Bamum |
Batak |
Bengali |
Bopomofo |
Brahmi |
Braille |
Buginese |
Buhid |
Canadian_Aboriginal |
Carian |
Chakma |
Cham |
Cherokee |
Common |
Coptic |
Cuneiform |
Cypriot |
Cyrillic |
Deseret |
Devanagari |
Egyptian_Hieroglyphs |
Ethiopic |
Georgian |
Glagolitic |
Gothic |
Greek |
Gujarati |
Gurmukhi |
Han |
Hangul |
Hanunoo |
Hebrew |
Hiragana |
Imperial_Aramaic |
Inherited |
Inscriptional_Pahlavi |
Inscriptional_Parthian |
Javanese |
Kaithi |
Kannada |
Katakana |
Kayah_Li |
Kharoshthi |
Khmer |
Lao |
Latin |
Lepcha |
Limbu |
Linear_B |
Lisu |
Lycian |
Lydian |
Malayalam |
Mandaic |
Meetei_Mayek |
Meroitic_Cursive |
Meroitic_Hieroglyphs |
Miao |
Mongolian |
Myanmar |
New_Tai_Lue |
Nko |
Ogham |
Old_Italic |
Old_Persian |
Old_South_Arabian |
Old_Turkic |
Ol_Chiki |
Oriya |
Osmanya |
Phags_Pa |
Phoenician |
Rejang |
Runic |
Samaritan |
上にスクロール