正規表現

本ページには広告が含まれています。

正規表現とは

正規表現せいきひょうげんとは特定のパターンに一致する文字列を一つのパターンで表現する方法のであり、いくつかの文字列を一つの文字列で表現することができます。

通常文章の中から文字列を検索するとき指定した文字列に完全一致する文字列しか抽出できませんが、正規表現を使うと文字列の中から特定のパターンに一致する文字列を抽出することができるようになります。

例えば文章の中からWindows 7Windows 8Windows 10Windows 11を検索したい場合、通常の検索であれば4回に分けて検索しなければなりませんが、正規表現を使うとWindows (7|8|10|11)の文字列だけですべて検索するといった曖昧検索ができるようになります。

このようにすべてのパターンを書き出せるくらいの検索であれば正規表現は必要ないかもしれませんが、文字列の中から郵便番号を抽出したいとかなるとすべてのパターン(000-0000000-0001000-0002、…、999-9999)を検索するのは大変です。

郵便番号は数字3桁-数字4桁で表され、これを正規表現を使って表すと\d{3}-\d{4}と書くことができます。\dは正規表現の中で特別な意味を持つメタ文字と呼ばれるもので、\d{n}でn桁の数字を表現することが出きます。この検索では数字3桁-数字4桁のパターンに一致しますが、厳密ではなく存在しない郵便番号が含まれることには注意してください。

特殊文字

メタ文字

メタ文字とは正規表現において特別な意味を持つ文字のことです。

メタ文字には角括弧外を除きパターン中のどこでも使用できる文字と、角括弧内でのみ使用できる2種類があります。

以下は角括弧外で使えるメタ文字です。

メタ文字 説明
\ メタ文字を通常の文字として扱う際、その文字の前に\(バックスラッシュ)を付けます。
^ 行の先頭
$ 行の末尾
. 改行文字(\n\r\u2028\u2029)を除く任意の一文字。\nはLine Feedでカーソルを次の行に移動、\rはCarriage Returnでカーソルを行の先頭に移動することを意味しています。\u2028は行分割子、\u2029は段落分割子で、それぞれテキスト内で行・段落を分割する際に使われます。
[ 文字クラス定義の開始
] 文字クラス定義の終了
| グループ内のいずれかに一致
( サブパターンの開始
) サブパターンの終了
? サブパターンの拡張、1回未満の一致、最短マッチ
* 0回以上の繰り返し
+ 1回以上の繰り返し
{ 最小/最大を指定する量指定子の開始
} 最小/最大を指定する量指定子の終了

パターン中の角括弧で囲まれた部分を文字クラスといい、文字クラスで使えるメタ文字は以下のとおりです。

メタ文字 説明
\ メタ文字を通常の文字として扱う際、その文字の前に\(バックスラッシュ)を付けます。
^ 文字クラス内の先頭に記述したときのみ否定を表します。
- 文字の範囲を指定。

これらの文字を通常の文字として使う場合はメタ文字の直前に\(バックスラッシュ)を付けてエスケープする必要があります。

メタ文字 エスケープ
\ \\
^ \^
$ \$
. \.
[ \[
] \]
| \|
( \{
) \)
? \?
* \*
+ \+
{ \{
} \}

文字クラス

角括弧([ ])で囲まれた一連の文字のいずれかにマッチするパターンを定義します。

角括弧内にはUnicode文字を指定することができます。Unicode文字列の対応表はUnicode一覧 0000-0FFF - Wikipediaを参照。

\d,\D,\w,\W,\s,\Sは文字の集合を表すエスケープシーケンスで、文字クラスエスケープと呼びます。文字クラスエスケープは事前に定義された文字の集合を表していて、文字クラスで書き換えることも可能です。

文字 意味
[abc] 文字クラス。角括弧内のいずれかの文字に一致します。-(ハイフン)で範囲を指定することができますが、-(ハイフン)が角括弧内の先頭、もしくは末尾に指定した場合、範囲としてではなく文字のハイフンとして扱われます。
[^abc] 角括弧内のいずれかの文字以外。角括弧内に囲まれていないすべての文字に一致します。-(ハイフン)^(キャレット)の直後もしくは末尾に指定した場合、範囲としてではなく文字のハイフンとして扱われます。
. 改行文字(\n\r\u2028\u2029)を除く任意の一文字。文字クラス内では.(ピリオド)として扱われます。
\d 半角アラビア数字に一致します。文字クラスの表現では[0-9]に同義。
\D 半角アラビア数字以外に一致します。文字クラスでの表現では[^\d]もしくは[^0-9]に同義。
\w アンダーバーを含む半角英数字に一致します。文字クラスの表現では[0-9A-Za-z_]に同義。
\W アンダーバーを含む半角英数字以外に一致します。文字クラスの表現では[^\w]もしくは[^0-9A-Za-z_]に同義。
\s 空白、タブ、改ページ、改行、その他の Unicode 空白文字などのホワイトスペース1文字に一致します。文字クラスの表現では[\f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]に同義。
\S 空白、タブ、改ページ、改行、その他の Unicode 空白文字などのホワイトスペース1文字以外に一致します。文字クラスの表現では[^\s]もしくは[^\f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]に同義。
\t 水平タブに一致します。
\r 復帰文字に一致します。
\n 行送り文字に一致します。
\v 垂直タブに一致します。
\f 改ページに一致します。
[\b] 後退文字に一致します。
\0 NUL文字に一致します。
\cX キャレット記法を使用した制御文字に一致します。XにはAからZの文字が入ります。制御文字をキャレット文字で表現する方法は制御文字 - Wikipediaを参照。例えば\r\n\r^M\n^Jなので\cM\cJとなります。
\xhh 2桁の16進数からなる文字コードhhに対応するASCIIコードの文字に一致します。文字コード表はASCIIコード表を参照。
\uxxxx 4桁の16進数からなる文字コードxxxxに対応するUnicode(UTF-16)の文字に一致します。文字コード表はUnicode一覧 0000-0FFF - Wikipediaを参照。
\u{hhhh}または\u{hhhhh} U+hhhhまたはU+hhhhhに対応するUnicode文字に一致します。1桁から6桁の文字コードを指定することができ、特にサロゲートペア文字を扱うときに便利です。
\p{UnicodeProperty},\P{UnicodeProperty} Unicode文字プロパティに指定された一連の文字に一致します。
\ \(バックスラッシュ)はエスケープシーケンス、もしくはバックスラッシュの後に続く文字のエスケープ処理するときに使います。
x|y 論理和:xまたはyに一致します。両方のパターンに一致した場合、左側のパターンを優先してマッチします。

論理和で特に注意が必要なのは右側のパターンに左側のパターンが含まれるときです。例えばパターンにapple|apples、検索文字列にapplesを指定したとき、論理和は左側から一致を確認していくのでapplesではなくappleにマッチしてしまいます。

UWSC
apple|apples

対策としては論理和の左側から文字数の多い順に並べる、もしくは\bで囲むなどがあります。

UWSC
apples|apple
UWSC
\b(apple|apples)\b

アサーション

アサーションは特定の条件を満たす位置にマッチするためのパターンです。

文字 意味
^ 行の先頭に一致します。
$ 行の末尾に一致します。
\b 単語の区切りに一致します。単語構成文字と後に続く非単語構成文字の間、もしくは非単語構成文字と後に続く単語構成文字の間です。
\B 単語の区切り以外に一致します。一致した位置の前後が同じ種類の文字である必要があります。
先読み・後読み

先読み・後読みで記述した場合、文字列ではなく位置にマッチします。

例えば都道府県名の一覧から京都を検索した場合、東"京都"にもマッチしてしまいますが、以下のように後読みを使えば東京都を除いた京都のみにマッチさせることができます。

UWSC
(?<!東)京都

以下"pattern"は任意の文字列または正規表現。

メタ文字 意味
(?=pattern) 肯定先読み:"pattern"という文字列にマッチした 直前の位置
(?!pattern) 否定先読み:"pattern"という文字列にマッチしない直前の位置
(?<=pattern) 肯定後読み:"pattern"という文字列にマッチした直後の位置
(?<!pattern) 否定後読み:"pattern"という文字列にマッチしない直後の位置
肯定先読み
UWSC
東京都(?=北区)

北区が後に続く東京都にマッチします。

否定先読み
UWSC
東京都(?!北区)

北区が続かない東京都にマッチします。

肯定後読み
UWSC
(?<=東京都)北区

東京都に続く北区にマッチします。

否定後読み
UWSC
(?<!東京都)北区

東京都に続かない北区にマッチします。

数量詞

特定のパターンがどれだけ繰り返されるかを指定するために使用します。

文字 意味
x* 直前の文字xの0回以上の繰り返しに一致します。
x+ 直前の文字xの1回以上の繰り返しに一致します。
x? 直前の文字xの0回もしくは1回の出現に一致します。
x{n} 直前の文字xがn回出現するものに一致します。
x{n,} 直前の文字xがn回以上の出現に一致します。
x{n,m} 直前の文字xがn回以上m回以下の出現に一致します。
x*?
x+?
x??
x{n}?
x{n,}?
x{n,m}?
デフォルトでは最長マッチが行われますが、数量詞の直後に?を指定すると最短マッチになります。

?は直前の文字が0回、もしくは1回の出現に一致します。例えば色の英語であるcolorcolourは以下のように表すことができます。uはあってもなくても良いのでu?と記述することでcolorcolourのどちらにもマッチします。

UWSC
colou?r

これはcolor|colourと記述したときと同じ結果を返します。

グループと後方参照

パターンを括弧で囲むことでグループ化したり後方参照することができるようになります。

文字 意味
(x) キャプチャグループ:括弧(( ))で囲まれた部分にマッチした文字列を取得します。
(?<Name>x) 名前付きキャプチャグループ:キャプチャグループに名前を付けることで、その名前で一致した部分にアクセスできるようにします。
(?:x) 非キャプチャグループ:キャプチャを行わずにグルーピングのみを行います。キャプチャ結果が必要ない場合に使います。
\n n番目の括弧に一致した部分の後方参照を行います。
\k<Name> Nameで指定された名前付きキャプチャグループに一致する最後の部分文字列の後方参照を行います。

例えば(\d{4})-(\d{2})-(\d{2})という正規表現で年-月-日の形式の日付にマッチさせた場合、\1\2\3の値が代入され、後方参照を行うことができます。

非キャプチャグループはキャプチャを行わずにグループ化のみ行いたい場合に使います。例えば2022年か2024年にマッチさせたい場合、括弧を使い(202(2|4))と書くことが出来ますが、年・月・日3つのキャプチャグループを作成したいのに、必要のない24の箇所もキャプチャグループとして作成されてしまいます。結果を見ても20240729の他に4がキャプチャされているのがわかります。

UWSC
DIM Matches = reExecute("2024-07-29", "(202(2|4))-(\d{2})-(\d{2})")

WITH Matches.Item(0)
	FOR i = 0 TO .SubMatches.Count - 1
		PRINT i + "<#TAB>" + .SubMatches(i)
	NEXT
ENDWITH
結果
プレーンテキスト
0	2024
1	4
2	07
3	29

必要のないキャプチャグループを作成するときは(?:x)という形式で記述することで、非キャプチャグループとすることができます。(202(2|4))の箇所を(202(?:2|4))を書き換えることで20222024の部分はキャプチャされますが、24の部分はキャプチャを行わずにグルーピングのみを行うことが出来るようになります。

結果を見ても年・月・日の部分のみ抽出することができているのがわかると思います。

UWSC
DIM Matches = reExecute("2024-07-29", "(202(?:2|4))-(\d{2})-(\d{2})")

WITH Matches.Item(0)
	FOR i = 0 TO .SubMatches.Count - 1
		PRINT i + "<#TAB>" + .SubMatches(i)
	NEXT
ENDWITH
結果
プレーンテキスト
0	2024
1	07
2	29

制御文字

キャレット記法 10進数 16進数 名称 エスケープシーケンス
^@ 00 00 空白 \0
^A 01 01 ヘッディング開始
^B 02 02 テキスト開始
^C 03 03 テキスト終結
^D 04 04 伝送終了
^E 05 05 問い合わせ
^F 06 06 肯定応答
^G 07 07 ベル \a
^H 08 08 後退 \b
^I 09 09 水平タブ \t
^J 10 0A 改行 \n
^K 11 0B 垂直タブ \v
^L 12 0C 書式送り \f
^M 13 0D 復帰 \r
^N 14 0E シフトアウト
^O 15 0F シフトイン
^P 16 10 伝送制御拡張
^Q 17 11 装置制御1
^R 18 12 装置制御2
^S 19 13 装置制御3
^T 20 14 装置制御4
^U 21 15 否定応答
^V 22 16 同期信号
^W 23 17 伝送ブロック終結
^X 24 18 取り消し
^Y 25 19 媒体終結
^Z 26 1A 置換
^[ 27 1B 拡張
^\ 28 1C ファイル分離
^] 29 1D グループ分離
^^ 30 1E レコード分離
^_ 31 1F ユニット分離
^? 127 7F 抹消

ASCII

0123456789ABCDEF
0NULLSOHSTXETXEOTENQACKBELBSTABLFVTFFCRSOSI
10DLEDC1DC2DC3DC4NAKSYNETBCANEMSUBESCFSGSRSUS
20Space!"#$%&'()*+,-./
300123456789:;<=>?
40@ABCDEFGHIJKLMNO
50PQRSTUVWXYZ[\]^_
60`abcdefghijklmno
70pqrstuvwxyz{|}~DEL

Unicode文字プロパティ

Unicode文字プロパティとはUnicodeにおいて各文字に割り当てられた属性のことで、文字の分類や特性を示すために使用されます。

正規表現で数字やアルファベットにマッチさせたい場合、数字やアルファベットは数が少なくて全体を把握しやすいので[0-9][A-Za-z]のように記述しても問題ありませんが、日本語のひらがなや漢字などは複雑な範囲指定が必要のため文字クラスで指定するのは適していません。例えば、ひらがなにマッチさせたいときに文字クラスで[あ-ん]と記述した場合より前の文字コードにあるにはマッチしません。正しくひらがなにマッチさせるには[ぁ-ん]と記述する必要があります。またカタカナにマッチさせる場合は[ァ-ヴ]という文字クラスになります。

数字は0から9、アルファベットはAからZと連続した文字列なのでわかりやすいですが、ひらがなやカタカナ・漢字を文字クラスで書くのは適していません。

Unicode文字プロパティではこのようによく使われる範囲や同じ言語、文字コードのブロック毎に名前を定義していて、文字クラスを使わずに範囲を指定することができます。例えばひらがなは\p{Hiragana}、カタカナは\p{Katakana}、漢字は\p{Han}と書き換えることができ、文字クラスを使うよりも見た目で何を表しているかもわかりやすく指定範囲のミスも減らすことができます。

文字クラスUnicode文字プロパティ意味
General CategoryScript
[0-9]Nd\p{Number}数字
[A-Z]Luアルファベット大文字
[a-z]Llアルファベット小文字
[A-Za-z]Lu、Loアルファベット
[0-9A-Za-z]Nd、Lu、Lo英数字
[ぁ-ん]Lo\p{Hiragana}ひらがな
[ァ-ヴ]Lo\p{Katakana}カタカナ
[ヲ-゚]Lo半角カタカナ
[亜-熙]Lo漢字(Shift-JIS)
[一-龠]Lo漢字(Unicode)

指定した文字の一般カテゴリはAnalyse string toolで調べることができます。

一般カテゴリ(General Category)
Unicode文字を大まかに分類するためのプロパティ。すべての文字はいずれかのプロパティを持ち、プロパティは1字または2字で表現されます。1文字目は大分類、2文字目は小分類を表しています。一般的なカテゴリ(文字、数字、記号など)
スクリプト(Script)
文字が属する書記体系(ラテン文字、キリル文字、漢字など)
ブロック(Block)
文字が属するUnicodeブロック(基本ラテン文字、ひらがな、漢字など)

Unicode文字プロパティを使った正規表現は以下のように記述します。\pUnicodePropertyに含まれている文字列、\Pは含まれていない文字列にマッチします。

UWSC
\p{UnicodeProperty}
\P{UnicodeProperty}
文字Unicode名称General CategoryScriptBlock
U+3042HIRAGANA LETTER ALoHiraganaHiragana
1U+0031DIGIT ONENdCommonBasic Latin
U+FF21FULLWIDTH LATIN CAPITAL LETTER ALoCommonHalfwidth and Fullwidth Forms
AU+0041LATIN CAPITAL LETTER ALuLatinBasic Latin
U+4E9CCJK UNIFIED IDEOGRAPH-131364LoHanCJK Unified Ideographs

指定したUnicode文字プロパティにマッチさせるにはUnicodePropertyGeneral CategoryもしくはScriptを指定します。

UWSC
\p{カテゴリ名}
\p{Isカテゴリ名}
\p{General_Category=カテゴリ名}

\p{Isスクリプト名}
\p{Script=スクリプト名}

\p{Inブロック名}
\p{Block=ブロック名}

一般カテゴリ

一般カテゴリとは文字を大まかに分類するためのプロパティです。すべての文字はいずれかのプロパティを持っていて、プロパティは大分類を表す単語(LetterMarkNumberPunctuationSymbolSeparatorOther)もしくは略した1字で指定するか、小分類と組み合わせる場合は2字で指定します。

以下の表に示すのが一般カテゴリで指定できるプロパティで、大文字1字で書かれたものは大分類の略語で、括弧内が大分類を表す単語です。例えばアルファベットを表すプロパティはLetterLのどちらでも指定可能です。

アルファベット2字で書かれたプロパティは大分類と小分類を組み合わせたもので、文字をより細かく絞ることができます。例えばプロパティNdは数字を表すプロパティNの大分類よりも10進数字に限定することができます。

https://gotellilab.github.io/Bio381/Scripts/Feb07/RegularExpressionsTutorial.pdf
プロパティ名前文字数
C(Other)その他
Cc(Control)コントロール文字(Control)65
Cf(Format)非可視整形用文字(Format)161
Co(Private_Use)指摘利用領域(Private Use)0
Cs(Surrogate)サロゲート(Surrrogate)0
Cn(Unassigned)
L(Letter)アルファベット
Ll(Lowercase_Letter)小文字アルファベット(Lowercase Letter)2,155
Lm(Modifier_Letter)疑似文字(Modifier Letter)260
Lo(Other_Letter)その他の文字(Other Letter)127,004
Lt(Titlecase_Letter)タイトル文字(Titlecase Letter)31
Lu(Uppercase_Letter)大文字アルファベット(Uppercase Letter)1,791
M(Mark)記号
Mc(Spacing_Combining_Mark)修飾文字(Spacing Mark)443
Me(Enclosing_Mark)他の文字を囲むための文字(Enclosing Mark)13
Mn(Non_Spacing_Mark)他の文字を修飾するための文字(Nonspacing Mark)1,839
N(Number)数字
Nd(Decimal_Digit_Number)10進数字(Decimal Number)650
Nl(Letter_Number)数値を表す文字(Letter Number)236
No(Other_Number)その他の数字(Other Number)895
P(Punctuation)句読記号
Pc(Connector_Punctuation)連結用句読記号(Connector Punctuation)10
Pd(Dash_Punctuation)ダッシュ(Dash Punctuation)25
Pe(Close_Punctuation)閉じ句読記号(Close Punctuation)73
Pf(Final_Punctuation)末尾句読記号(Final Punctuation)10
Pi(Initial_Punctuation)先頭句読記号(Initial Punctuation)12
Po(Other_Punctuation)その他の句読記号(Other Punctuation)593
Ps(Open_Punctuation)開き句読記号(Open Punctuation)75
S(Symbol)記号
Sc(Currency_Symbol)通貨記号(Currency Symbol)62
Sk(Modifier_Symbol)合わせ文字(Modifier Symbol)123
Sm(Math_Symbol)数学記号(Math Symbol)948
So(Other_Symbol)その他の記号(Other Symbol)6,431
Z(Separator)区切り文字
Zl(Line_Separator)行区切り文字(Line Separator)1
Zp(Paragraph_Separator)段落区切り文字(Paragraph Separator)1
Zs(Space_Separator)空白文字(Space Separator)17

スクリプト

スクリプトは文字が属する書記体系によって分類します。この中でよく使われるものはひらがな(Hiragana)カタカナ(Katakana)漢字(Han)ラテン文字(Latin)です。括弧内はスクリプト名を表しています。

スクリプト名前文字数
AdlmAdlam88
AfakAfaka0
AghbCaucasian Albanian53
AhomAhom58
ArabArabic1,291
AranArabic (Nastaliq variant)0
ArmiImperial Aramaic31
ArmnArmenian96
AvstAvestan61
BaliBalinese121
BamuBamum657
BassBassa Vah36
BatkBatak56
BengBengali96
BhksBhaiksuki97
BlisBlissymbols0
BopoBopomofo77
BrahBrahmi109
BraiBraille256
BugiBuginese30
BuhdBuhid20
CakmChakma71
CansUnified Canadian Aboriginal Syllabics710
CariCarian49
ChamCham83
CherCherokee172
CirtCirth0
CoptCoptic137
CpmnCypro-Minoan0
CprtCypriot syllabary55
CyrlCyrillic443
CyrsCyrillic (Slavonic variant)0
DevaDevanagari154
DogrDogra60
DsrtDeseret80
DuplDuployan shorthand143
EgydEgyptian demotic0
EgyhEgyptian hieratic0
EgypEgyptian hieroglyphs1,080
ElbaElbasan40
EthiEthiopic495
GeokKhutsuri0
GeorGeorgian173
GlagGlagolitic132
GongGunjala Gondi63
GonmMasaram Gondi75
GothGothic27
GranGrantha85
GrekGreek518
GujrGujarati91
GuruGurmukhi80
HanbHan with Bopomofo0
HangHangul11,739
HaniHan (Hanzi, Kanji, Hanja)94,204
HanoHanunoo21
HansHan (Simplified variant)0
HantHan (Traditional variant)0
HatrHatran26
HebrHebrew134
HiraHiragana379
HluwAnatolian Hieroglyphs583
HmngPahawh Hmong127
HmnpNyiakeng Puachue Hmong71
HrktJapanese syllabaries0
HungOld Hungarian108
IndsIndus0
ItalOld Italic39
JamoJamo0
JavaJavanese90
JpanJapanese0
JurcJurchen0
KaliKayah Li47
KanaKatakana304
KharKharoshthi68
KhmrKhmer146
KhojKhojki62
KitlKhitan large script0
KitsKhitan small script471
KndaKannada89
KoreKorean0
KpelKpelle0
KthiKaithi67
LanaTai Tham127
LaooLao82
LatfLatin (Fraktur variant)0
LatgLatin (Gaelic variant)0
LatnLatin1,374
LekeLeke0
LepcLepcha74
LimbLimbu68
LinaLinear A341
LinbLinear B211
LisuLisu49
LomaLoma0
LyciLycian29
LydiLydian27
MahjMahajani39
MakaMakasar25
MandMandaic, Mandaean29
ManiManichaean51
MarcMarchen68
MayaMayan hieroglyphs0
MedfMedefaidrin91
MendMende Kikakui213
MercMeroitic Cursive90
MeroMeroitic Hieroglyphs32
MlymMalayalam118
ModiModi79
MongMongolian167
MoonMoon0
MrooMro43
MteiMeitei Mayek79
MultMultani38
MymrMyanmar223
NarbOld North Arabian32
NbatNabataean40
NewaNewa97
NkdbNaxi Dongba0
NkgbNaxi Geba0
NkooN’Ko62
NshuNüshu397
OgamOgham29
OlckOl Chiki48
OrkhOld Turkic73
OryaOriya91
OsgeOsage72
OsmaOsmanya40
PalmPalmyrene32
PaucPau Cin Hau57
PermOld Permic43
PhagPhags-pa56
PhliInscriptional Pahlavi27
PhlpPsalter Pahlavi29
PhlvBook Pahlavi0
PhnxPhoenician29
PiqdKlingon0
PlrdMiao149
PrtiInscriptional Parthian30
QaaaReserved for private use (start)0
QabxReserved for private use (end)0
RjngRejang37
RoroRongorongo0
RunrRunic86
SamrSamaritan61
SaraSarati0
SarbOld South Arabian32
SaurSaurashtra82
SgnwSignWriting672
ShawShavian48
ShrdSharada96
ShuiShuishu0
SiddSiddham92
SindKhudawadi69
SinhSinhala111
SoraSora Sompeng35
SoyoSoyombo83
SundSundanese72
SyloSyloti Nagri45
SyrcSyriac88
SyreSyriac (Estrangelo variant)0
SyrjSyriac (Western variant)0
SyrnSyriac (Eastern variant)0
TagbTagbanwa18
TakrTakri67
TaleTai Le35
TaluNew Tai Lue83
TamlTamil123
TangTangut6,914
TavtTai Viet72
TeluTelugu98
TengTengwar0
TfngTifinagh59
TglgTagalog20
ThaaThaana50
ThaiThai86
TibtTibetan207
TirhTirhuta82
UgarUgaritic31
VaiiVai300
VispVisible Speech0
WaraWarang Citi84
WchoWancho59
WoleWoleai0
XpeoOld Persian50
XsuxCuneiform, Sumero-Akkadian1,234
YiiiYi1,220
ZanbZanabazar Square72
ZinhCode for inherited script573
ZmthMathematical notation0
ZsyeSymbols (Emoji variant)0
ZsymSymbols0
ZxxxCode for unwritten documents0
ZyyyCode for undetermined script8,087
ZzzzCode for uncoded script0

ブロック

Unicodeにおけるブロックとは連続するコードポイントの範囲をグループ化したものです。ブロックには一意の名前が付いていて重複することはありません。各ブロックはU+hhh0からU+hhhFの符号位置を持っています。

\p{UnicodeProperty}

ブロック名称文字数
U+0000 - U+007F基本ラテン文字
Basic Latin
128
U+0080 - U+00FFラテン1補助
Latin-1 Supplement
128
U+0100 - U+017Fラテン文字拡張A
Latin Extended-A
128
U+0180 - U+024Fラテン文字拡張B
Latin Extended-B
208
U+0250 - U+02AFIPA拡張
IPA Extensions
96
U+02B0 - U+02FF前進を伴う修飾文字
Spacing Modifier Letters
80
U+0300 - U+036F合成可能なダイアクリティカルマーク
Combining Diacritical Marks
112
U+0370 - U+03FFギリシア文字及びコプト文字
Greek and Coptic
135
U+0400 - U+04FFキリル文字
Cyrillic
256
U+0500 - U+052Fキリル文字補助
Cyrillic Supplement
48
U+0530 - U+058Fアルメニア文字
Armenian
91
U+0590 - U+05FFヘブライ文字
Hebrew
88
U+0600 - U+06FFアラビア文字
Arabic
255
U+0700 - U+074Fシリア文字
Syriac
77
U+0750 - U+077Fアラビア文字補助
Arabic Supplement
48
U+0780 - U+07BFターナ文字
Thaana
50
U+07C0 - U+07FFンコ文字
NKo
62
U+0800 - U+083Fサマリア文字
Samaritan
61
U+0840 - U+085Fマンダ文字
Mandaic
29
U+0860 - U+086Fシリア文字拡張
Syriac Supplement
11
U+0870 - U+089Fアラビア文字拡張B
Arabic Extended-B
U+08A0 - U+08FFアラビア文字拡張A
Arabic Extended-A
84
U+0900 - U+097Fデーヴァナーガリー文字
Devanagari
128
U+0980 - U+09FFベンガル文字
Bengali
96
U+0A00 - U+0A7Fグルムキー文字
Gurmukhi
80
U+0A80 - U+0AFFグジャラート文字
Gujarati
91
U+0B00 - U+0B7Fオリヤー文字
Oriya
91
U+0B80 - U+0BFFタミル文字
Tamil
72
U+0C00 - U+0C7Fテルグ文字
Telugu
98
U+0C80 - U+0CFFカンナダ文字
Kannada
89
U+0D00 - U+0D7Fマラヤーラム文字
Malayalam
118
U+0D80 - U+0DFFシンハラ文字
Sinhala
91
U+0E00 - U+0E7Fタイ文字
Thai
87
U+0E80 - U+0EFFラオス文字
Lao
82
U+0F00 - U+0FFFチベット文字
Tibetan
211
U+1000 - U+109Fビルマ文字
Myanmar
160
U+10A0 - U+10FFグルジア文字
Georgian
88
U+1100 - U+11FFハングル字母
Hangul Jamo
256
U+1200 - U+137Fエチオピア文字
Ethiopic
358
U+1380 - U+139Fエチオピア文字補助
Ethiopic Supplement
26
U+13A0 - U+13FFチェロキー文字
Cherokee
92
U+1400 - U+167F統合カナダ先住民音節
Unified Canadian Aboriginal Syllabics
640
U+1680 - U+169Fオガム文字
Ogham
29
U+16A0 - U+16FFルーン文字
Runic
89
U+1700 - U+171Fタガログ文字
Tagalog
20
U+1720 - U+173Fハヌノオ文字
Hanunoo
23
U+1740 - U+175Fブヒッド文字
Buhid
20
U+1760 - U+177Fタグバヌア文字
Tagbanwa
18
U+1780 - U+17FFクメール文字
Khmer
114
U+1800 - U+18AFモンゴル文字
Mongolian
157
U+18B0 - U+18FF統合カナダ先住民文字拡張
Unified Canadian Aboriginal Syllabics Extended
70
U+1900 - U+194Fリンブ文字
Limbu
68
U+1950 - U+197Fタイ・ナ文字
Tai Le
35
U+1980 - U+19DF新タイロ文字
New Tai Lue
83
U+19E0 - U+19FFクメール文字用記号
Khmer Symbols
32
U+1A00 - U+1A1Fブギス文字
Buginese
30
U+1A20 - U+1AAFタイタム文字
Tai Tham
127
U+1AB0 - U+1AFF合成可能なダイアクリティカルマーク拡張
Combining Diacritical Marks Extended
17
U+1B00 - U+1B7Fバリ文字
Balinese
121
U+1B80 - U+1BBFスンダ文字
Sundanese
64
U+1BC0 - U+1BFFバタク文字
Batak
56
U+1C00 - U+1C4Fレプチャ文字
Lepcha
74
U+1C50 - U+1C7Fオルチキ文字
Ol Chiki
48
U+1C80 - U+1C8Fキリル文字拡張C
Cyrillic Extended-C
9
U+1C90 - U+1CBFグルジア文字拡張
Georgian Extended
46
U+1CC0 - U+1CCFスンダ文字補助
Sundanese Supplement
8
U+1CD0 - U+1CFFヴェーダ用拡張
Vedic Extensions
43
U+1D00 - U+1D7F音声記号拡張
Phonetic Extensions
128
U+1D80 - U+1DBF音声記号拡張補助
Phonetic Extensions Supplement
64
U+1DC0 - U+1DFF合成可能なダイアクリティカルマーク補助
Combining Diacritical Marks Supplement
63
U+1E00 - U+1EFFラテン文字拡張追加
Latin Extended Additional
256
U+1F00 - U+1FFFギリシア文字拡張
Greek Extended
233
U+2000 - U+206F一般句読点
General Punctuation
111
U+2070 - U+209F上付き・下付き
Superscripts and Subscripts
42
U+20A0 - U+20CF通貨記号
Currency Symbols
32
U+20D0 - U+20FF合成可能な記号用ダイアクリティカルマーク
Combining Diacritical Marks for Symbols
33
U+2100 - U+214F文字様記号
Letterlike Symbols
80
U+2150 - U+218F数字に準ずるもの
Number Forms
60
U+2190 - U+21FF矢印
Arrows
112
U+2200 - U+22FF数学記号
Mathematical Operators
256
U+2300 - U+23FFその他の技術用記号
Miscellaneous Technical
256
U+2400 - U+243F制御機能用記号
Control Pictures
39
U+2440 - U+245F光学的文字認識
Optical Character Recognition
11
U+2460 - U+24FF囲み英数字
Enclosed Alphanumerics
160
U+2500 - U+257F罫線素片
Box Drawing
128
U+2580 - U+259Fブロック要素
Block Elements
32
U+25A0 - U+25FF幾何学模様
Geometric Shapes
96
U+2600 - U+26FFその他の記号
Miscellaneous Symbols
256
U+2700 - U+27BF装飾記号
Dingbats
192
U+27C0 - U+27EFその他の数学記号A
Miscellaneous Mathematical Symbols-A
48
U+27F0 - U+27FF補助矢印A
Supplemental Arrows-A
16
U+2800 - U+28FF点字図形
Braille Patterns
256
U+2900 - U+297F補助矢印B
Supplemental Arrows-B
128
U+2980 - U+29FFその他の数学記号B
Miscellaneous Mathematical Symbols-B
128
U+2A00 - U+2AFF補助数学記号
Supplemental Mathematical Operators
256
U+2B00 - U+2BFFその他の記号及び矢印
Miscellaneous Symbols and Arrows
253
U+2C00 - U+2C5Fグラゴル文字
Glagolitic
94
U+2C60 - U+2C7Fラテン文字拡張C
Latin Extended-C
32
U+2C80 - U+2CFFコプト文字
Coptic
123
U+2D00 - U+2D2Fグルジア文字補助
Georgian Supplement
40
U+2D30 - U+2D7Fティフィナグ文字
Tifinagh
59
U+2D80 - U+2DDFエチオピア文字拡張
Ethiopic Extended
79
U+2DE0 - U+2DFFキリル文字拡張A
Cyrillic Extended-A
32
U+2E00 - U+2E7F補助句読点
Supplemental Punctuation
83
U+2E80 - U+2EFFCJK部首補助
CJK Radicals Supplement
115
U+2F00 - U+2FDF康煕部首
Kangxi Radicals
214
U+2FF0 - U+2FFF漢字構成記述文字
Ideographic Description Characters
12
U+3000 - U+303FCJKの記号及び句読点
CJK Symbols and Punctuation
64
U+3040 - U+309F平仮名
Hiragana
93
U+30A0 - U+30FF片仮名
Katakana
96
U+3100 - U+312F注音字母
Bopomofo
43
U+3130 - U+318Fハングル互換字母
Hangul Compatibility Jamo
94
U+3190 - U+319F漢文用記号
Kanbun
16
U+31A0 - U+31BF注音字母拡張
Bopomofo Extended
32
U+31C0 - U+31EFCJKの筆画
CJK Strokes
36
U+31F0 - U+31FF片仮名拡張
Katakana Phonetic Extensions
16
U+3200 - U+32FF囲みCJK文字・月
Enclosed CJK Letters and Months
255
U+3300 - U+33FFCJK互換用文字
CJK Compatibility
256
U+3400 - U+4DBFCJK統合漢字拡張A
CJK Unified Ideographs Extension A
6,592
U+4DC0 - U+4DFF易経記号
Yijing Hexagram Symbols
64
U+4E00 - U+9FFFCJK統合漢字
CJK Unified Ideographs
20,989
U+A000 - U+A48Fイ文字
Yi Syllables
1,165
U+A490 - U+A4CFイ文字部首
Yi Radicals
55
U+A4D0 - U+A4FFリス文字
Lisu
48
U+A500 - U+A63Fヴァイ文字
Vai
300
U+A640 - U+A69Fキリル文字拡張B
Cyrillic Extended-B
96
U+A6A0 - U+A6FFバムン文字
Bamum
88
U+A700 - U+A71F声調修飾文字
Modifier Tone Letters
32
U+A720 - U+A7FFラテン文字拡張D
Latin Extended-D
180
U+A800 - U+A82Fシロティ・ナグリ文字
Syloti Nagri
45
U+A830 - U+A83Fインド慣用数量記号
Common Indic Number Forms
10
U+A840 - U+A87Fパスパ文字
Phags-pa
56
U+A880 - U+A8DFサウラーシュトラ文字
Saurashtra
82
U+A8E0 - U+A8FFデーヴァナーガリー文字拡張
Devanagari Extended
32
U+A900 - U+A92Fカヤー文字
Kayah Li
48
U+A930 - U+A95Fルジャン文字
Rejang
37
U+A960 - U+A97Fハングル字母拡張A
Hangul Jamo Extended-A
29
U+A980 - U+A9DFジャワ文字
Javanese
91
U+A9E0 - U+A9FFビルマ文字拡張B
Myanmar Extended-B
31
U+AA00 - U+AA5Fチャム文字
Cham
83
U+AA60 - U+AA7Fビルマ文字拡張A
Myanmar Extended-A
32
U+AA80 - U+AADFタイ・ヴィエト文字
Tai Viet
72
U+AAE0 - U+AAFFメイテイ文字拡張
Meetei Mayek Extensions
23
U+AB00 - U+AB2Fエチオピア文字拡張A
Ethiopic Extended-A
32
U+AB30 - U+AB6Fラテン文字拡張E
Latin Extended-E
60
U+AB70 - U+ABBFチェロキー文字補助
Cherokee Supplement
80
U+ABC0 - U+ABFFメイテイ文字
Meetei Mayek
56
U+AC00 - U+D7AFハングル音節文字
Hangul Syllables
11,172
U+D7B0 - U+D7FFハングル字母拡張B
Hangul Jamo Extended-B
72
U+D800 - U+DB7Fサロゲート (high surrogate)
High Surrogates
0
U+DB80 - U+DBFFサロゲート (high private use surrogate)
High Private Use Surrogates
0
U+DC00 - U+DFFFサロゲート (low surrogate)
Low Surrogates
0
U+E000 - U+F8FF私用領域
Private Use Area
0
U+F900 - U+FAFFCJK互換漢字
CJK Compatibility Ideographs
472
U+FB00 - U+FB4Fアルファベット表示形
Alphabetic Presentation Forms
58
U+FB50 - U+FDFFアラビア表示形A
Arabic Presentation Forms-A
611
U+FE00 - U+FE0F字形選択子
Variation Selectors
16
U+FE10 - U+FE1F縦書き形
Vertical Forms
10
U+FE20 - U+FE2F合成可能な半記号
Combining Half Marks
16
U+FE30 - U+FE4FCJK互換形
CJK Compatibility Forms
32
U+FE50 - U+FE6F小字形
Small Form Variants
26
U+FE70 - U+FEFFアラビア表示形B
Arabic Presentation Forms-B
141
U+FF00 - U+FFEF半角・全角形
Halfwidth and Fullwidth Forms
225
U+FFF0 - U+FFFF特殊用途文字
Specials
5
U+10000 - U+1007F線文字B音節文字
Linear B Syllabary
88
U+10080 - U+100FF線文字B表意文字
Linear B Ideograms
123
U+10100 - U+1013Fエーゲ数字
Aegean Numbers
57
U+10140 - U+1018F古代ギリシア数字
Ancient Greek Numbers
79
U+10190 - U+101CF古代記号
Ancient Symbols
14
U+101D0 - U+101FFファイストスの円盤文字
Phaistos Disc
46
U+10280 - U+1029Fリュキア文字
Lycian
29
U+102A0 - U+102DFカリア文字
Carian
49
U+102E0 - U+102FFコプト・エパクト数字
Coptic Epact Numbers
28
U+10300 - U+1032F古代イタリア文字
Old Italic
39
U+10330 - U+1034Fゴート文字
Gothic
27
U+10350 - U+1037F古ペルム文字
Old Permic
43
U+10380 - U+1039Fウガリト文字
Ugaritic
31
U+103A0 - U+103DF古代ペルシャ文字
Old Persian
50
U+10400 - U+1044Fデザレット文字
Deseret
80
U+10450 - U+1047Fショー文字
Shavian
48
U+10480 - U+104AFオスマニア文字
Osmanya
40
U+104B0 - U+104FFオセージ文字
Osage
72
U+10500 - U+1052Fエルバサン文字
Elbasan
40
U+10530 - U+1056Fカフカス・アルバニア文字
Caucasian Albanian
53
U+10570 - U+105BFビタクチェ文字
Vithkuqi
U+10600 - U+1077F線文字A
Linear A
341
U+10780 - U+107BFラテン文字拡張F
Latin Extended-F
U+10800 - U+1083Fキプロス音節文字
Cypriot Syllabary
55
U+10840 - U+1085F帝国アラム文字
Imperial Aramaic
31
U+10860 - U+1087Fパルミラ文字
Palmyrene
32
U+10880 - U+108AFナバテア文字
Nabataean
40
U+108E0 - U+108FFハトラ文字
Hatran
26
U+10900 - U+1091Fフェニキア文字
Phoenician
29
U+10920 - U+1093Fリュディア文字
Lydian
27
U+10980 - U+1099Fメロエ文字楷書体
Meroitic Hieroglyphs
32
U+109A0 - U+109FFメロエ文字草書体
Meroitic Cursive
90
U+10A00 - U+10A5Fカローシュティー文字
Kharoshthi
68
U+10A60 - U+10A7F古代南アラビア文字
Old South Arabian
32
U+10A80 - U+10A9F古代北アラビア文字
Old North Arabian
32
U+10AC0 - U+10AFFマニ文字
Manichaean
51
U+10B00 - U+10B3Fアヴェスタ文字
Avestan
61
U+10B40 - U+10B5F碑文パルティア文字
Inscriptional Parthian
30
U+10B60 - U+10B7F碑文パフラヴィ文字
Inscriptional Pahlavi
27
U+10B80 - U+10BAF詩編パフラヴィ文字
Psalter Pahlavi
29
U+10C00 - U+10C4F突厥文字
Old Turkic
73
U+10C80 - U+10CFF古ハンガリー文字
Old Hungarian
108
U+10D00 - U+10D3Fハニーフィー・ロヒンギャ文字
Hanifi Rohingya
50
U+10E60 - U+10E7Fルミ数字記号
Rumi Numeral Symbols
31
U+10E80 - U+10EBFヤズィーディー文字
Yezidi
47
U+10EC0 - U+10EFFアラビア文字拡張C
Arabic Extended-C
U+10F00 - U+10F2F古ソグド文字
Old Sogdian
40
U+10F30 - U+10F6Fソグド文字
Sogdian
42
U+10F70 - U+10FAF古ウイグル文字
Old Uyghur
U+10FB0 - U+10FDFホラズム文字
Chorasmian
28
U+10FE0 - U+10FFFエリマイス文字
Elymaic
23
U+11000 - U+1107Fブラーフミー文字
Brahmi
109
U+11080 - U+110CFカイティー文字
Kaithi
67
U+110D0 - U+110FFソラングソンペング文字
Sora Sompeng
35
U+11100 - U+1114Fチャクマ文字
Chakma
71
U+11150 - U+1117Fマハージャニー文字
Mahajani
39
U+11180 - U+111DFシャーラダー文字
Sharada
96
U+111E0 - U+111FF旧シンハラ数字
Sinhala Archaic Numbers
20
U+11200 - U+1124Fホジャ文字
Khojki
62
U+11280 - U+112AFムルターニー文字
Multani
38
U+112B0 - U+112FFフダーワーディー文字
Khudawadi
69
U+11300 - U+1137Fグランタ文字
Grantha
86
U+11400 - U+1147Fネワ文字
Newa
97
U+11480 - U+114DFティルフータ文字
Tirhuta
82
U+11580 - U+115FF悉曇文字
Siddham
92
U+11600 - U+1165Fモーディー文字
Modi
79
U+11660 - U+1167Fモンゴル文字補助
Mongolian Supplement
13
U+11680 - U+116CFタークリー文字
Takri
67
U+11700 - U+1173Fアーホム文字
Ahom
58
U+11800 - U+1184Fドーグリー文字
Dogra
60
U+118A0 - U+118FFワラング・クシティ文字
Warang Citi
84
U+11900 - U+1195Fディヴェス・アクル文字
Dives Akuru
72
U+119A0 - U+119FFナンディナーガリー文字
Nandinagari
65
U+11A00 - U+11A4Fザナバザル方形文字
Zanabazar Square
72
U+11A50 - U+11AAFソヨンボ文字
Soyombo
83
U+11AB0 - U+11ABF統合カナダ先住民音節拡張A
Unified Canadian Aboriginal Syllabics Extended-A
U+11AC0 - U+11AFFパウ・チン・ハウ文字
Pau Cin Hau
57
U+11C00 - U+11C6Fバイクシュキー文字
Bhaiksuki
97
U+11C70 - U+11CBFマルチェン文字
Marchen
68
U+11D00 - U+11D5Fマサラム・ゴーンディー文字
Masaram Gondi
75
U+11D60 - U+11DAFグンジャラ・ゴーンディー文字
Gunjala Gondi
63
U+11EE0 - U+11EFFマカッサル文字
Makasar
25
U+11F00 - U+11F5Fカウィ文字
Kawi
U+11FB0 - U+11FBFリス文字補助
Lisu Supplement
1
U+11FC0 - U+11FFFタミル文字補助
Tamil Supplement
51
U+12000 - U+123FF楔形文字
Cuneiform
922
U+12400 - U+1247F楔形文字の数字及び句読点
Cuneiform Numbers and Punctuation
116
U+12480 - U+1254Fシュメール楔形文字
Early Dynastic Cuneiform
196
U+12F90 - U+12FFFキュプロ・ミノア文字
Cypro-Minoan
U+13000 - U+1342Fエジプト聖刻文字
Egyptian Hieroglyphs
1,071
U+13430 - U+1343Fエジプト聖刻文字書式制御記号
Egyptian Hieroglyph Format Controls
9
U+14400 - U+1467Fアナトリア聖刻文字
Anatolian Hieroglyphs
583
U+16800 - U+16A3Fバムン文字補助
Bamum Supplement
569
U+16A40 - U+16A6Fムロ文字
Mro
43
U+16AD0 - U+16AFFバサ文字
Bassa Vah
36
U+16B00 - U+16B8Fパハウ・フモン文字
Pahawh Hmong
127
U+16E40 - U+16E9Fメデファイドリン文字
Medefaidrin
91
U+16F00 - U+16F9Fミャオ文字
Miao
149
U+16FE0 - U+16FFF漢字の記号及び句読点
Ideographic Symbols and Punctuation
7
U+17000 - U+187FF西夏文字
Tangut
6,136
U+18800 - U+18AFF西夏文字の構成要素
Tangut Components
768
U+18B00 - U+18CFF契丹小字
Khitan Small Script
470
U+18D00 - U+18D8F西夏文字補助
Tangut Supplement
9
U+1AFF0 - U+1AFFF仮名拡張B
Kana Extended-B
U+1B000 - U+1B0FF仮名補助
Kana Supplement
256
U+1B100 - U+1B12F仮名拡張A
Kana Extended-A
31
U+1B130 - U+1B16F小書き仮名拡張
Small Kana Extension
7
U+1B170 - U+1B2FF女書
Nushu
396
U+1BC00 - U+1BC9Fデュプロワイエ式速記
Duployan
143
U+1BCA0 - U+1BCAF速記書式制御記号
Shorthand Format Controls
4
U+1CF00 - U+1CFCFズナメニ聖歌音符
Znamenny Musical Notation
U+1D000 - U+1D0FFビザンチン音楽記号
Byzantine Musical Symbols
246
U+1D100 - U+1D1FF音楽記号
Musical Symbols
231
U+1D200 - U+1D24F古代ギリシア音符記号
Ancient Greek Musical Notation
70
U+1D2C0 - U+1D2DFカクトヴィク数字
Kaktovik Numerals
U+1D2E0 - U+1D2FFマヤ数字
Mayan Numerals
20
U+1D300 - U+1D35F太玄経記号
Tai Xuan Jing Symbols
87
U+1D360 - U+1D37F算木用数字
Counting Rod Numerals
25
U+1D400 - U+1D7FF数学用英数字記号
Mathematical Alphanumeric Symbols
996
U+1D800 - U+1DAAFサットン手話表記法
Sutton SignWriting
672
U+1DF00 - U+1DFFFラテン文字拡張G
Latin Extended-G
U+1E000 - U+1E02Fグラゴル文字補助
Glagolitic Supplement
38
U+1E030 - U+1E08Fキリル文字拡張D
Cyrillic Extended-D
U+1E100 - U+1E14FNyiakeng Puachue Hmong文字
Nyiakeng Puachue Hmong
71
U+1E290 - U+1E2BFトト
Toto
U+1E2C0 - U+1E2FFワンチョ文字
Wancho
59
U+1E4D0 - U+1E4FFムンダリ・バニ文字
Nag Mundari
U+1E7E0 - U+1E7FFエチオピア文字拡張B
Ethiopic Extended-B
U+1E800 - U+1E8DFメンデ文字
Mende Kikakui
213
U+1E900 - U+1E95Fアドラム文字
Adlam
88
U+1EC70 - U+1ECBFインド・シヤク数字
Indic Siyaq Numbers
68
U+1ED00 - U+1ED4Fオスマン・シヤク数字
Ottoman Siyaq Numbers
61
U+1EE00 - U+1EEFFアラビア数字記号
Arabic Mathematical Alphabetic Symbols
143
U+1F000 - U+1F02Fマージャン記号
Mahjong Tiles
44
U+1F030 - U+1F09Fドミノ記号
Domino Tiles
100
U+1F0A0 - U+1F0FFトランプ記号
Playing Cards
82
U+1F100 - U+1F1FF囲み英数字補助
Enclosed Alphanumeric Supplement
200
U+1F200 - U+1F2FF囲み漢字補助
Enclosed Ideographic Supplement
64
U+1F300 - U+1F5FFその他の記号及び絵記号
Miscellaneous Symbols and Pictographs
768
U+1F600 - U+1F64F顔文字
Emoticons
80
U+1F650 - U+1F67F装飾用絵記号
Ornamental Dingbats
48
U+1F680 - U+1F6FF交通及び地図記号
Transport and Map Symbols
114
U+1F700 - U+1F77F錬金術記号
Alchemical Symbols
116
U+1F780 - U+1F7FF幾何学模様拡張
Geometric Shapes Extended
101
U+1F800 - U+1F8FF補助矢印C
Supplemental Arrows-C
150
U+1F900 - U+1F9FF補助記号及び絵記号
Supplemental Symbols and Pictographs
254
U+1FA00 - U+1FA6Fチェス記号
Chess Symbols
98
U+1FA70 - U+1FAFF記号及び絵記号拡張A
Symbols and Pictographs Extended-A
57
U+1FB00 - U+1FBFF旧型コンピュータ記号
Symbols for Legacy Computing
212
U+20000 - U+2A6DFCJK統合漢字拡張B
CJK Unified Ideographs Extension B
42,718
U+2A700 - U+2B73FCJK統合漢字拡張C
CJK Unified Ideographs Extension C
4,149
U+2B740 - U+2B81FCJK統合漢字拡張D
CJK Unified Ideographs Extension D
222
U+2B820 - U+2CEAFCJK統合漢字拡張E
CJK Unified Ideographs Extension E
5,762
U+2CEB0 - U+2EBEFCJK統合漢字拡張F
CJK Unified Ideographs Extension F
7,473
U+2EBF0 - U+2EE5FCJK統合漢字拡張I
CJK Unified Ideographs Extension I
U+2F800 - U+2FA1FCJK互換漢字補助
CJK Compatibility Ideographs Supplement
542
U+30000 - U+3134FCJK統合漢字拡張G
CJK Unified Ideographs Extension G
4,939
U+31350 - U+323AFCJK統合漢字拡張H
CJK Unified Ideographs Extension H
U+E0000 - U+E007Fタグ
Tags
97
U+E0100 - U+E01EF字形選択子補助
Variation Selectors Supplement
240
U+F0000 - U+FFFFF補助私用領域A
Supplementary Private Use Area-A
0
U+100000 - U+10FFFF補助私用領域B
Supplementary Private Use Area-B
0
Unicode Utilities: Character Properties Unicode Utilities: Character Property Index Analyse string tool

一致リストの取得

指定した範囲の整数

以下は、0〜255の範囲にある整数にマッチする正規表現です。

UWSC
DIM Matches = reExecute(str, "\b([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\b")
\b([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\b
0〜99の数値
\b([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\b
100〜199の数値
\b([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\b
200〜249の数値
\b([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\b
250〜255の数値
\b([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\b
0〜99、100〜199、200〜249、または250〜255の数値。

偶数

UWSC
DIM Matches = reExecute(str, "\b\d*[02468]\b")

奇数

UWSC
DIM Matches = reExecute(str, "\b\d*[13579]\b")

URL

UWSC
DIM Matches = reExecute(str, "https?://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?")

メールアドレス

受信したメールの本文から抽出するときなどに。

UWSC
DIM Matches = reExecute(str, "[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*")

郵便番号

UWSC
DIM Matches = reExecute(str, "\d{3}-\d{4}")
\d{3}-\d{4}
3桁の数字
\d{3}-\d{4}
4桁の数字

日付(Y/M/D形式)

日付の正規表現です。あくまで月が1~12、日が1~31の範囲であることだけを確認しているので、06/31など存在しない日付にもマッチします。

UWSC
DIM Matches = reExecute(str, "[0-9]{,4}/(0?[1-9]|1[0-2])/(0?[1-9]|[12][0-9]|3[01])")
[0-9]{,4}/(0?[1-9]|1[0-2])/(0?[1-9]|[12][0-9]|3[01])
4桁以下の数字
[0-9]{,4}/(0?[1-9]|1[0-2])/(0?[1-9]|[12][0-9]|3[01])
1~12の数字。先頭の0埋めはあってもなくても良い。
[0-9]{,4}/(0?[1-9]|1[0-2])/(0?[1-9]|[12][0-9]|3[01])
1~31の数字。先頭の0埋めはあってもなくても良い。

日付(YMD形式)

厳密に日付をチェックするには以下を使います。

UWSC
DIM Matches = reExecute(str, "(?!([02468][1235679]|[13579][01345789])000229)(([0-9]{4}(01|03|05|07|08|10|12)(0[1-9]|[12][0-9]|3[01]))|([0-9]{4}(04|06|09|11)(0[1-9]|[12][0-9]|30))|([0-9]{4}02(0[1-9]|1[0-9]|2[0-8]))|([0-9]{2}([02468][048]|[13579][26])0229))")

携帯電話番号(070、080、090から始まる11桁の番号)

070-0・080-0・090-0から始まる番号は存在しないので除外。

UWSC
DIM Matches = reExecute(str, "0[789]0-[1-9]\d{3}-\d{4}")

フリーダイヤル(0120-000-000、0800-000-0000)

UWSC
DIM Matches = reExecute(str, "0(?:120-\d{3}-\d{2}|800-\d{3}-\d{3})0")

IP電話(050から始まる11桁の番号)

UWSC
DIM Matches = reExecute(str, "050-\d{4}-\d{4}")

IPアドレス

IPアドレスは「xxx.xxx.xxx.xxx」形式で表されます。x=0~255の値。

UWSC
DIM Matches = reExecute(str, "(([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])")
(([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])
0~99の数値
(([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])
100~199の数値
(([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])
200〜249の数値
(([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])
250〜255の数値
(([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])
250〜255 or 200〜249 or 100〜199 or 0〜99なので0〜255
(([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])
「0〜255.」を3回繰り返し。
(([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])
0〜255の数値

英数字

UWSC
DIM Matches = reExecute(str, "[A-Za-z0-9]+")

参考文献

  1. 文字クラス - JavaScript | MDN
  2. PHP: メタ文字 - Manual
  3. JavaScriptで扱えるUnicodeプロパティ一覧 #正規表現 - Qiita
  4. Unicodeのコードポイントやプロパティの一覧、詳細情報などを確認 | note.nkmk.me
  5. https://util.unicode.org/UnicodeJsps/properties.jsp
  6. PHP: Unicode 文字プロパティ - Manual
  7. 正規表現 記法 まとめ - galife
  8. Unicode Character Categories
  9. http://ftp.unicode.org/Public/UNIDATA/Blocks.txt
  10. Mastering Regular Expressions - Jeffrey E. F. Friedl - Google ƒuƒbƒNƒX