正規表現 文字クラス
文字クラスにつて説明します
通常の文字クラス
[aiueo]
は,「a または i または u または e または o の1文字」にマッチします.
例えば
k[aiueo]i
は,kai や kii や kui や kei や koi にマッチします.
否定文字クラス
[^a]
は,「aでない1文字」にマッチします.たとえば,b や i や x や 3 や @ がマッチします.aのみがマッチしません.
[^aiueo]
は,「a i u e o 以外の1文字」にマッチします.たとえば,b や x や 3 や @ がマッチします.a と i と u と e と o のみがマッチしません.
k[^aiueo]i
は,kbi や kxi や k3i や k@i にマッチします.
kai や kii や kui や kei や koi にはマッチしません.
ki もマッチしません.
範囲指定
[a-e]
は,「aからe のいずれかの1文字」にマッチします.具体的には,a と b と c と d と eがマッチします
[0-3]
は,「0 から 3 のいずれかの1文字」にマッチします.具体的には,0 と 1 と 2 と 3 がマッチします
[a-z]
は,「aからz のいずれかの1文字」にマッチします.すなわち,全ての小文字アルファベット1文字がマッチします.
[a-zA-Z]
は,「aからz あるいは A-Z のいずれかの1文字」にマッチします.すなわち,大文字または小文字のアルファベット1文字がマッチします.
否定と範囲指定
[^e-g]
は,「e から g 以外のいずれかの文字」にマッチします.具体的には,b や i や x や 3 や @ がマッチします.e と f と g のみがマッチしません.
以上で,文字クラスの基本はおしまいです.
簡単ですね.
拡張機能
一部の実装でのみサポートされている機能です
[[0-9]-[48]]
は,[0-9] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} から [48]={4, 8} を減算した結果である {0, 1, 2, 3, 5, 6, 7, 9} がマッチします.