How can I delete unwanted leading and trailing characters from a string

Hi everyone,
I’m having a mental block. Say I have the following string:

myString = " % $ ,,- , the cat in the hat ---- , - # ,  "

and I want to pull out the the cat in the hat. How can I do that? I’ve tried StringReplace with various combinations of WordBoundary and LetterCharacter but I can seem to get it right.

Gregory

Is this acceptable

StringReplace[myString, {RegularExpression["^\\W*t"] -> "t", RegularExpression["t\\W*$"] -> "t"}]

StringCases[myString, WordCharacter ~~ (WordCharacter | " ") .. ~~ WordCharacter]

{“the cat in the hat”}

Hi Bill and I van,
Thanks for your tips. Both work. I came up with something similar to yours, I van,

First[StringCases[myString, WordCharacter .. ~~ (WordCharacter | Whitespace) .. ~~ WordCharacter]

The only extra thing that StringCases requires over StringReplace is that the extracted string be pulled out of the list, as I have done using First.