LANG SELRCT

コードを書く場所

2019年6月24日月曜日

正規表現でAND検索を試してみる2


正規表現でAND検索を試してみる1
でやったことをもっと効率的な

/^(?=.*文字列1)(?=.*文字列2)/

で試してみます


ABO に AとOが両方含まれるか

コード.gs
function getAndConditional() {
  var str = 'ABO';
  var regexp = /^(?=.*A)(?=.*O)/;
  var result = regexp.test(str);
  Logger.log(result);
}

実行結果は true


パターンを動的に作りたい

コード2.gs
function getAndConditional2() {
  var str = 'ABO';
  var values = ['A', 'O'];
  var pattern = '^';
  for(var i = 0; i < values.length; i++) {
    pattern += '(?=.*' + values[i] + ')';
  }
  Logger.log(pattern);
  var regexp = new RegExp(pattern);
  var result = regexp.test(str);
  Logger.log(result);
}


実行結果


参考

正規表現はこちらの記事を参考にさせていただきました
正規表現で論理積(AND)を実現する
https://qiita.com/n4o847/items/dbcd0b8af3781d221424


正規表現

正規表現パターンの記述