文字列abc、文字列bcd、文字列cde の3つの文字列の中の 少なくとも2つを含む行を検索する。 検索前 検索後
abcXXXbcdXXXcdeXX abcde abcX Xbcd XXXX abde XabcdX abcXcde bcde
^((?=.*abc)(?=.*bcd)|(?=.*abc)(?=.*cde)|(?=.*bcd)(?=.*cde)).*$ 別解 ^((?=.*abc)(?=.*(bcd|cde))|(?=.*bcd)(?=.*cde)).*$
3つの文字列から2つの文字列を選ぶ組み合わせ数は、 3C2 通り すなわち3通りの組み合わせを列挙してます。 別解では、 以下のブール代数の変形に基づいて、 正規表現を変形してます。 A*B + A*C + B*C = A*(B+C) + B*C