正規表現

正規表現で16進数や2進数, 8進数をかく方法 | +-の書き方

正規表現で16進数,2進数,8進数を表す方法
記事の要約
  • 10進数は^[0-9]+$
  • 16進数は^[0-9a-fA-F]+$
  • 2進数は^[01]+$
  • 8進数は^[0-7]+$

正規表現の10進数

正規表現の10進数は次のように記載します。

// 10進数の整数が1桁以上あるときの表現
^[0-9]+$

// または
^\d+$

10進数は「0123456789」が使われる文字なため、それを文字クラスで範囲指定する「[0-9]」または同義の「\d」で表現します。先頭を意味する「^」末尾を意味する「$」は検証したい一部のみが10進数の数値に当てはまっていた場合にヒットするのを許容します。

正規表現の16進数

正規表現の16進数は次のように記載します。

// 16進数の整数が1桁以上あるときの表現
^[0-9a-fA-F]+$

// 英字は小文字のみしか使わない場合
^[0-9a-f]+$

// 英字は大文字のみしか使わない場合
^[0-9A-F]+$

16進数は「0123456789abcdefABCDEF」が使われる文字なため、それを文字クラスで範囲指定する[0-9a-fA-F]とします。

参考:RGBのカラーコードを16進数で表す

RGBのカラーコードを16進数で表すには次のように表現します。

// RGBのカラーコードを6桁の16進数で表す場合
^#[0-9a-fA-F]{6}$

たとえば「#000000」「#FFFFFF」「#123456」などがあるので、16進数を6桁表せるようにかけばOKです。

正規表現の2進数

正規表現の2進数は次のように記載します。

// 2進数の整数が1桁以上あるときの表現
^[01]+$

2進数は「01」が使われる文字なため、それを文字クラスで指定する「[01]」で表現します。

正規表現の8進数

正規表現の8進数は次のように記載します。

// 8進数の整数が1桁以上あるときの表現
^[0-7]+$

8進数は「01234567」が使われる文字なため、それを文字クラスで範囲指定する「[0-7]」で表現します。

先頭末尾を固定・+-を追記する場合

先頭と末尾を固定する場合

たとえば16進数のみの行を探したい場合は、16進数を表す前後に「^」と「$」を追記します。

// 16進数の整数が1桁以上あるときの表現
^[0-9a-fA-F]+$

+-または-の有無を表現する場合

正負の整数をいずれも表現する場合は「[+-]」、負の整数のみを表現する場合は「-?」を追記します。

// +-のいずれかがつく場合の16進数の表現
^[+-][0-9a-fA-F]+$

// -がつくかもしれない場合の16進数の表現
^-?[0-9a-fA-F]+$