特定の文字列が個々の文字に続くまで、一連の文字を返すように re モジュールを使用しようとしています。re documentation は、これを達成するために (?!...) を使用できることを示しているようです。私が現在取り組んでいる例:
str_to_search = 'abababsonab, etc'
first = re.search(r'(ab)+(?!son)', str_to_search)
second = re.search(r'.+(?!son)', str_to_search)
first.group() は「abab」です。これが私が目指しているものです。ただし、次の「b」の直後に「son」が続くため、「ababa」で停止させようとしているにもかかわらず、second.group() は str_to_search 文字列全体を返します。どこが間違っていますか?