String#scan(/[\w'.]+/)
でどうだろうか。
> string = "I'm a good person, and you? You don't look so smart." > string.scan(/[\w'.]+/) => ["I'm", "a", "good", "person", "and", "you", "You", "don't", "look", "so", "smart."]
文末のピリオドを含めないなら。
string.scan(/[\w']+/) => ["I'm", "a", "good", "person", "and", "you", "You", "don't", "look", "so", "smart"]