行ごとで、 文字列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回