如何用正则表达式匹配英文文章中的英文单词?谢谢^_^

### 题目描述
需求:Java写一个程序,汇总文章中每个英文单词的个数。判断一个单词时,需要考虑前后的空格,换行字符以及连接”-”符号,连接符会将一个词组成一个整体,用正则表达式实现,具体规则如下:
1. 以下当作一个词: 
don't, doesn't, didn't, can't, couldn't, wouldn't, isn't, aren't, wasn't, weren't     
2. 以下当作一个词处理: 
he's, she's, I'm, you're, we're, they're    
3. 以下不计入统计,删除
Shawn's, apple's, Jonas’, what's, 'twas
4. ice-cream    如果不在行尾换行时,当作一个词,但是不能删掉中间连接符

### 题目来源及自己的思路
看了一些资料,写了一个初稿,
(?:she's|he's|they're|we're|you're|I'm|It's)|(?:isn't|aren't|doesn't|don't|didn't|haven't|hadn't|hasn't|can't|couldn't|wasn't|weren't|wouldn't )

测试字符串为:
She's"1.tom:'what's your name.'  Jame's Janes', didn't, character,wasn't,
ice-cream, 

### 相关代码
(?:she's|he's|they're|we're|you're|I'm|It's)|(?:isn't|aren't|doesn't|don't|didn't|haven't|hadn't|hasn't|can't|couldn't|wasn't|weren't|wouldn't )

### 你期待的结果是什么?实际看到的错误信息又是什么?
但是不能正确判断单词、连接符和换行符。

谢谢老司机领路!帮我设计这个正则表达式 ^_^

你说的这些,都感觉没啥规律。你给个测试和预期结果吧

以下是规则,和简单的测试文案,还请专家帮助,指导:

1. 以下视为1个词,查询结果就是这个词: 
don't doesn't didn't can't, couldn't couldn't aren't hadn't, hasn't, wasn't, weren't, wouldn't      
2. 以下视为1个词,查询结果就是这个词: 
he's she's I'm, you're, we're, they're
3. 从词中删掉 's  比如: Shawn's ==> Shawn , apple's==>apple, Jonas’==> Jonas,  'twas==>twas    
4. ice-cream 这是一个词, 如果在行中,就是ice-cream,即不删掉"-"; 但是如果因换行分开2行,就拆成2个词 ==>ice cream
black-
smith

拆成 black smith 2个词
5. 其它正常的单词,直接提取: emembering her own child-life, and the happy summer days.