Javascriptで複数のワードにマッチしている場合、true
マッチしていない場合はfalse
を返すプログラムを作りました
※es6が使えないのでvar
使ってます
var text = '今日はりんごとぶどうとブルーベリーとカレーを食べました。おいしかったです。';
var matcha1 = /(?=.+りんご)(?=.+ぶどう)(?=.+カレー)/;
var matcha2 = /(?=.+りんご)(?=.+ぶどう)(?=.+ハヤシライス)/;
console.log(matcha1.test(text));
console.log(matcha2.test(text));
![](https://mokubo.website/wp-content/uploads/2020/08/Screen-Shot-2020-08-06-at-11.59.38-644x237.png)
正規表現得意でないので今回はじっくり調査して作りましたが、
やはり慣れていないのでかなり苦労しました
上記のコードでは、最低1回以上全て出現すること、が条件となっています
もしどれか一つだけ、とかだったらor表現の |
を入れるとできます
var matcha1 = /(?=.りんご)|(?=.+ぶどう)|(?=.+カレー)/;
var matcha2 = /(?=.りんご)|(?=.+ぶどう)|(?=.+ハヤシライス)/;
![](https://mokubo.website/wp-content/uploads/2020/08/Screen-Shot-2020-08-06-at-12.02.04-644x242.png)
ちなみに今回はJavascriptで実装しましたが、Javaのコードを参考にして作ったので、JavaとかRubyとかでもだいたい似たようなコードになると思います
調べても該当する記事がなかったので参考になれば幸いです