記事の内容
正規表現(量指定)
*
*は、直前の表記を0回以上繰り返すパターにマッチする正規表現になります。
・ab*の場合は、aでもabでもabbbの全てにマッチする
例
const str1 = 'RGB';
const str2 = 'Boy';
const str3 = 'Boom';
const str4 = 'Girl';
const regex = /Bo*/;
console.log("RGB:" + regex.test(str1));
console.log("Boy:" + regex.test(str2));
console.log("Boom:" + regex.test(str3));
console.log("Girl:" + regex.test(str4));
出力結果
RGB : true
Boy : true
Boom : true
Girl : false
.
.は、英数字・記号・スペース・タブ・各種制御記号などのどんな文字にもマッチする正規表現になります。
・文字数が少ない場合のみfalseになる
例
const str1 = '12';
const str2 = ' ';
const str3 = '1'+null;
const str4 = '1111';
const str5 = '1';
const regex = /../;
console.log("12:" + regex.test(str1));
console.log("空白(2個):" + regex.test(str2));
console.log("1とnull:" + regex.test(str3));
console.log("1111:" + regex.test(str4));
console.log("1:" + regex.test(str5));
出力結果
12 : true
空白(2個) : true
1とnull : true
1111 : true
1 : false
+
+は、直前の表記を1回以上繰り返すパターにマッチする正規表現になります。
例
const str1 = 'RGB';
const str2 = 'Boy';
const str3 = 'Boom';
const str4 = 'Girl';
const regex = /Bo+/;
console.log("RGB:" + regex.test(str1));
console.log("Boy:" + regex.test(str2));
console.log("Boom:" + regex.test(str3));
console.log("Girl:" + regex.test(str4));
出力結果
RGB : false
Boy : true
Boom : true
Girl : false
?
?は、直前の表記を0〜1回使用にマッチする正規表現になります。
例
const str1 = 'humor'; //アメリカ英語
const str2 = 'humour'; //カナダ・イギリス英語
const regex = /humou?r/;
console.log("humor:" + regex.test(str1));
console.log("humour:" + regex.test(str2));
出力結果
humor : true
humour : true
{n}
{n}は、直前表記の指定回数(n回)にマッチする正規表現になります。
・{n}は前後の文字指定をしない場合、予期せぬマッチをしてしまうので注意
例
const str1 = 'I used Pay!!';
const str2 = 'I used PayPay!!';
const str3 = 'I used PayPayPay!!';
const regex = /I used (Pay){2}!!/;
console.log("I used Pay!!:" + regex.test(str1));
console.log("I used PayPay!!:" + regex.test(str2));
console.log("I used PayPayPay!!:" + regex.test(str3));
出力結果
I used Pay!! : false
I used PayPay!! : true
I used PayPayPay!! : false
{n,}
{n,}は、直前表記の指定回数(n回)以上にマッチする正規表現になります。
例
const str1 = '!!!Go!';
const str2 = '!!!Go!Go!!!';
const str3 = '!!!Go!Go!Go!Go!Go!!!';
const regex = /!!!(Go!){2,}!!/;
console.log("!!!Go!:" + regex.test(str1));
console.log("!!!Go!Go!!!:" + regex.test(str2));
console.log("!!!Go!Go!Go!Go!Go!!!:" + regex.test(str3));
出力結果
!!!Go! : false
!!!Go!Go!!! : true
!!!Go!Go!Go!Go!Go!!! : true
{m,n}
{m,n}は、直前表記の指定回数(m回)以上〜{n回}以下にマッチする正規表現になります。
例
const str1 = '!!!Go!';
const str2 = '!!!Go!Go!!!';
const str3 = '!!!Go!Go!Go!Go!Go!!!';
const regex = /!!!(Go!){2,4}!!/;
console.log("!!!Go!:" + regex.test(str1));
console.log("!!!Go!Go!!!:" + regex.test(str2));
console.log("!!!Go!Go!Go!Go!Go!!!:" + regex.test(str3));
出力結果
!!!Go! : false
!!!Go!Go!!! : true
!!!Go!Go!Go!Go!Go!!! : false