正規表現が最後に出現したインデックスを取得する必要があります。
以下の文では、最後のピリオドまたは感嘆符のインデックスを取得する必要がありますが、それが短い略語 (スペース文字ピリオド) の一部である場合は必要ありません。
Great buy w. all amenities! Use on all cars. come on in
このように最初に出現したインデックスを取得できます
t = u"Great buy w. all amenities! Use on all cars. come on in "
p = "(?<! .)([.] |! )"
i = len(re.compile(p).split(t)[0])
print i
それは「アメニティ」の後の感嘆符です。しかし、「車」の後にピリオドが必要です。
私の省略形の正規表現には多少の調整が必要かもしれませんが、要点は、正規表現には否定的な後読みがあるということです。
否定的な先読みを使用しようとしましたが、複雑になり、私のやり方ではうまくいきませんでした。