行ごとで、 文字列ABCで囲まれた最後の文字列を検索する。 検索前 検索後
ABCXYZABC ABCABCXYZABC ABCABCXYZ XYZABCABC123456ABC XYZABCABC123456ABC789ABC XYZABCABC123456ABCABC
(?<=ABC)(?=((?!ABC).)*ABC((?!ABC).)*$).+(?=ABC) 別解1 (?<=ABC)((?!ABC).)+(?=ABC(?!.*ABC)) 別解2 (?<=ABC)(?=.*ABC)(?!(.*ABC){2})((?!ABC).)+
肯定先読みの中で否定先読みを使ってます。 別解2では、 前方にあるABCの数は1以上である。かつ、前方にあるABCの数は2以上ではない。 ⇔ 前方にあるABCの数は1である。 という連立不等式をふまえた同値命題を使ってます。