javascript入門/正規表現の使い方の【メタキャラクタ編】数字や文字、タブなどのマッチのやり方に引き続き、今回は数量詞についての解説です。
Quantifiers(数量詞)
先頭にマッチ
- ^
"how are you?".match(/^how/); => ["how"] "Hello, how are you?".match(/^how/); => null 先頭ではないのでマッチしません。
末尾にマッチ
- $
"how are you".match(/you$/); => ["you"] "how are you today".match(/you$/); => null 末尾ではないのでマッチしません。
特定の文字列が後に続いている文字列にマッチ
- ?=n
"test teaa tebb".match(/te(?=st)/g); => ["te"] "test"にだけマッチします。
特定の文字列が後に続いていない文字列にマッチ
- ?!n
"test teaa tebb".match(/te(?!st)/g); => ["te", "te"] "teaa", "tebb"にマッチします。
nのX回の繰り返しにマッチ
- n{X}
"aaabbcc".match(/a{3}/g); => ["aaa"] aを3回繰り返す場合にマッチします。 "aaaabbcc".match(/a{3}/g); => ["aaa"] "aaaa"ではなく"aaa"とマッチしています。
nのX回以上の繰り返しにマッチ
- n{X,}
nのX回以上、Y回以下の繰り返しにマッチ
- n{X,Y}
nの1回以上の繰り返しとマッチ
- n+
n{1,} と同じ意味です。
nの0回以上の繰り返しとマッチ
- n*
"ab bb a b".match(/ab*/g);
=> ["ab", "a"]
nの0回もしくは1回の繰り返しとマッチ
- n?