行ごとで、 文字列ABCが2個以上ある行を検索する。 検索前 検索後
ABCABC ABCABCXYZ XYZABCABC ABCXYZABC ABCXYZ ABCXYZABCDEFGABC DEFDEFGABC
^(?=(.*ABC){2}).*$ 別解1 ^.*ABC.*ABC.*$ 別解2 ^(.*ABC){2}.*$
別解のように、先読みを使わないほうが分かりやすいかもしれません。 ちなみに、文字列ABCが2個しかない行を検索する正規表現はこうなります。 ^(?=(((?!ABC).)*ABC){2}((?!ABC).)*$).*$ もしくは、 ^(((?!ABC).)*ABC){2}((?!ABC).)*$ もしくは、 ^(?=(.*ABC){2})(?!(.*ABC){3}).*$ 3-18 指定文字列がn回