import re
def sentence_case(text):
# Split into sentences. Therefore, find all text that ends
# with punctuation followed by white space or end of string.
sentences = re.findall('[^.!?]+[.!?](?:\s|\Z)', text)
# Capitalize the first letter of each sentence
sentences = [x[0].upper() + x[1:] for x in sentences]
# Combine sentences
return ''.join(sentences)
text = 'hello world. i know you hear me! where are you?'
print(text)
print(sentence_case(text))
aW1wb3J0IHJlCgpkZWYgc2VudGVuY2VfY2FzZSh0ZXh0KToKCSMgU3BsaXQgaW50byBzZW50ZW5jZXMuIFRoZXJlZm9yZSwgZmluZCBhbGwgdGV4dCB0aGF0IGVuZHMKCSMgd2l0aCBwdW5jdHVhdGlvbiBmb2xsb3dlZCBieSB3aGl0ZSBzcGFjZSBvciBlbmQgb2Ygc3RyaW5nLgoJc2VudGVuY2VzID0gcmUuZmluZGFsbCgnW14uIT9dK1suIT9dKD86XHN8XFopJywgdGV4dCkKCQoJIyBDYXBpdGFsaXplIHRoZSBmaXJzdCBsZXR0ZXIgb2YgZWFjaCBzZW50ZW5jZQoJc2VudGVuY2VzID0gW3hbMF0udXBwZXIoKSArIHhbMTpdIGZvciB4IGluIHNlbnRlbmNlc10KCQkKCSMgQ29tYmluZSBzZW50ZW5jZXMKCXJldHVybiAnJy5qb2luKHNlbnRlbmNlcykKCnRleHQgPSAnaGVsbG8gd29ybGQuIGkga25vdyB5b3UgaGVhciBtZSEgd2hlcmUgYXJlIHlvdT8nCnByaW50KHRleHQpCnByaW50KHNlbnRlbmNlX2Nhc2UodGV4dCkpCg==