Ruby Gsub: есть ли лучший способ - PullRequest
4 голосов
/ 22 декабря 2009

Мне нужно удалить все начальные и конечные нечисловые символы. Это то, что я придумал. Есть ли лучшая реализация.

puts s.gsub(/^\D+/,'').gsub(/\D+$/,'')

Ответы [ 2 ]

7 голосов
/ 22 декабря 2009

Вместо того, чтобы исключать то, что вы не хотите, часто проще выбрать то, что вы хотите (используя скобки). Кроме того, для этого требуется только одна оценка регулярного выражения:

s.match(/^\D*(.*?)\D*$/)[1]

Или, это удобное сокращение:

s[/^\D*(.*?)\D*$/, 1]
3 голосов
/ 22 декабря 2009

Возможно, один #gsub(/(^\D+)|(\D+$)/, '')

Кроме того, если есть сомнения Рубуляр it.

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