Rails, как заменить все 2+ пробелов? - PullRequest
2 голосов
/ 17 января 2012

для моего приложения, если есть один пробел, который в порядке.Но если есть 2-4, я хочу заменить их, чтобы сохранить интервал.

Какой лучший способ сделать это с помощью rails / regex?Или что-то еще?

Желаемый вывод:

' ' = ' '
'  ' = '  '
'   ' = '   '
'    ' = '    '

Ответы [ 2 ]

6 голосов
/ 17 января 2012

Вам просто нужен шаблон, который соответствует 2 или более пробелам, затем используйте блочную форму gsub и посмотрите, как долго это совпадение:

s.gsub(/ {2,}/) { ' ' * $&.length }

Например:

>> ' '.gsub(/ {2,}/) { ' ' * $&.length }
=> " "
>> (' ' * 2).gsub(/ {2,}/) { ' ' * $&.length }
=> "  "
>> (' ' * 3).gsub(/ {2,}/) { ' ' * $&.length }
=> "   "
>> (' ' * 11).gsub(/ {2,}/) { ' ' * $&.length }
=> "           "
5 голосов
/ 17 января 2012

Зачем вам нужно их обоих перевести? Почему бы не оставить его как фактическое пространство?

Тогда вы могли бы просто использовать взгляд:

srt.gsub(/ (?= )/, ' ')

Смотрите это здесь в действии: http://regexr.com? 2воду

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