Устранить начальные / конечные пробелы вокруг знаков препинания - PullRequest
0 голосов
/ 03 января 2012

У меня есть текстовое поле с кучей знаков препинания, которые всегда окружены пробелами.Так, например:

I don't recall saying ' pick up the boot ' or ' now is the time ' . But it's possible , so I may have . 

Каков синтаксис регулярного выражения, чтобы избавиться от этих пробелов?Я работаю в ActionScript.

Редактировать: на самом деле он и ведущий, и трейлинг, как вы можете видеть из приведенного выше примера.

1 Ответ

1 голос
/ 03 января 2012

Попробуйте это:

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...