複数ワードにマッチしているかを検出する正規表現

「複数ワードにマッチしているかを検出する正規表現」のアイキャッチ画像

Javascriptで複数のワードにマッチしている場合、true

マッチしていない場合はfalse を返すプログラムを作りました
※es6が使えないのでvar 使ってます

var text = '今日はりんごとぶどうとブルーベリーとカレーを食べました。おいしかったです。';

var matcha1 = /(?=.+りんご)(?=.+ぶどう)(?=.+カレー)/;
var matcha2 = /(?=.+りんご)(?=.+ぶどう)(?=.+ハヤシライス)/;
console.log(matcha1.test(text));
console.log(matcha2.test(text));

正規表現得意でないので今回はじっくり調査して作りましたが、
やはり慣れていないのでかなり苦労しました
上記のコードでは、最低1回以上全て出現すること、が条件となっています

もしどれか一つだけ、とかだったらor表現の | を入れるとできます

var matcha1 = /(?=.りんご)|(?=.+ぶどう)|(?=.+カレー)/;
var matcha2 = /(?=.りんご)|(?=.+ぶどう)|(?=.+ハヤシライス)/;

ちなみに今回はJavascriptで実装しましたが、Javaのコードを参考にして作ったので、JavaとかRubyとかでもだいたい似たようなコードになると思います

調べても該当する記事がなかったので参考になれば幸いです

目次
  1. 参考記事

参考記事

Check If a String Contains Multiple Keywords