Попробуйте это:
var str:String = "I don't recall saying ' pick up the boot ' or ' now is the time ' . But it's possible , so I may have .";
// "foo ' bar ' baz" => "foo 'bar' baz"
var re1:RegExp = /'\s(.*?)\s'/g;
str = str.replace(re1, "'$1'");
// "foo , bar . baz" => "foo, bar. baz"
var re2:RegExp = /\s([.,])/g;
str = str.replace(re2, "$1");
Для этой конкретной строки вы получите такой результат:
I don't recall saying 'pick up the boot' or 'now is the time'. But it's possible, so I may have.
Может быть, первое регулярное выражение нуждается в некоторых корректировках, поскольку оно не будет работать для строк, подобных
I didn ' t say ' foo '.
как будет преобразовано в
I didn 't say' foo '.
Краткое объяснение специальных символов, использованных в первом регулярном выражении:
\s
для пробела (пробел, табуляция)
.
означает любой символ
*
ноль или более повторений
?
делает *
квантификатор нежадным, поэтому он будет соответствовать как можно меньшему количеству символов
- , заключив все это в скобки, создает группу захвата; позже мы можем ссылаться на его содержимое в строке замены как
$1
Более подробную информацию о регулярных выражениях можно найти на этом сайте или в этом разделе документов Adobe.