I am trying to split sentence using regular expression.

Sentence: 

```
"Hallo, I'm a dog. The end. Someone said: \"Earth is Earth\". Is it good? I like it! 'He is right' said I."

```

Current regular expression: 

```
\\s+|(?<=[\\p{Punct}&&[^']])|(?=[\\p{Punct}&&[^']])

```

Current result: 

```
{"Hallo", ",", "I'm", "a", "dog", ".", "The", "end", ".", "Someone",
"said", ":", **""**, """ , "Earth", "is", "Earth", """, ".", "Is", "it",
"good", "?", "I", "like", "it", "!", **"'He"**, "is", **"right'"**,
"said", "I", "."}

```

I have extra `""` before first quote sign and it doesn't split the ' from words.

Result which I want: 

```
{"Hallo", ",", "I'm", "a", "dog", ".", "The", "end", ".", "Someone",
"said", ":", """ , "Earth", "is", "Earth", """, ".", "Is", "it",
"good", "?", "I", "like", "it", "!", "'" , "He", "is", "right", "'",
"said", "I", "."}

```

Edit:
Sorry! More code then:

```
String toTest =  "Hallo, I'm a dog. The end. Someone said: \"Earth is Earth\". Is it good? I like it! 'He is right' said I.";
String [] words = toTest.split("\\s+|(?<=[\\p{Punct}&&[^']])|(?=[\\p{Punct}&&[^']])");

```

and it produce words list:

words = {"Hallo", ",", "I'm", "a", "dog", ".", "The", "end", ".", "Someone",
 "said", ":", **""**, """ , "Earth", "is", "Earth", """, ".", "Is", "it",
 "good", "?", "I", "like", "it", "!", **"'He"**, "is", **"right'"**,
 "said", "I", "."}