JavaScript 正規表現パターン 文字クラス

[abc] マッチする文字集合

a, b, c のいずれかの文字の意味になります。複数記述可能。

ハイフン - で範囲を表すこともできます。 順序はアルファベットや数字の順序通りです。 例えば [a-c] 等とすることで「a から c までの文字」の意味になります。

[a-zA-Z0-9] とすれば、「a から z または A から Z または 0 から 9 までの文字」の意味です。

[^abc] マッチしない文字集合

カレット ^ をつけることで、 a, b, c を除く任意の文字の意味になります。

アルファベットや数字の順序通り [^a-c] 等とすることで「a から c 以外の文字」の意味になります。

const r = /ABC[^0-9]/
const s = 'ABCD'
const s2 = 'ABC5'
console.log(r.test(s))  // true
console.log(r.test(s2)) // false

. 任意の文字

任意の文字一文字を表します。

const r = /ABC.XYZ/
const s1 = 'ABC!XYZ'
const s2 = 'ABCXYZ'
console.log(r.test(s1)) // true
console.log(r.test(s2)) // false

デフォルトで改行文字などの行末文字 (line terminator) にはマッチしません。 s オプションを指定すると . は行末文字にもマッチします。

行末文字には \n\r\u2028\u2029 があります。

const s = `ABC
XYZ`
const r1 = /ABC.XYZ/
console.log(r1.test(s)) // false

const r2 = /ABC.XYZ/s
console.log(r2.test(s)) // true

ドット文字.そのものを意味するには、エスケープして \. とするか、[.] とします。

\w アルファベット、数字、アンダースコア

\wはアルファベット、数字及びアンダースコアにマッチします。

文字集合で書けば \w[a-zA-Z0-9_] と同様です。

const s = 'AB_CD'
const r = /AB\w{3}/
console.log(r.test(s)) // true

\W アルファベット、数字、アンダースコア以外の文字

\W はアルファベット、数字、アンダースコア以外にマッチします。

文字集合で書けば \W[^a-zA-Z0-9_] と同様です。

\s 空白文字

\s はスペース、タブ、改行文字といった空白文字にマッチします。

const r = /\s/
// [ \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]

\S 空白文字以外の文字

\S\s にマッチしない任意の文字にマッチします。

\w に対して、大文字の \W が「\w 以外の文字」の意味になるように、 \s に対して、大文字の \S は「\s以外の文字」の意味になります。

\d ASCII の数字

\d は ASCII の数字にマッチします。 [0-9] と同様の意味になります。

\D ASCII の数字以外の文字

\D は ASCII の数字以外の文字にマッチします。 [^0-9] と同様の意味になります。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 JavaScript 入門