ところが、Pythonの
re
モジュールには、論理和(AまたはB)はあっても論理積(AかつB)はありません。というか、正規表現というもの自体に論理積がないのかもしれません。if
文の条件にはできるのに。
PDFのお料理レシピを検索する。で、
recipe tamago cabbage
ができませんと書いたのですが、これを実現するには篩がけを2回すればいいことになります。つまり、"tamago"で検索した結果に対してさらに"cabbage"で検索を行って絞り込むわけです。
前回のコードでは、一致した結果を
recipe_files.append()
で追加していきましたが、2回め以降の絞り込みでは、一致しない要素をrecipe_files.remove()
で取り除いてやればいけそうです。
よくよく考えてみると、これはC/Migemoに限らず
re.search()
でAND検索をやるときにも使えそうです。汎用性を考えるなら、モジュール化してやれば便利そうなので、ちょっと考えてみます。(次回に続く)
0 件のコメント:
コメントを投稿