как получить конкретную точку между числами - PullRequest
0 голосов
/ 31 декабря 2018

Я хочу удалить точку только между цифрами

У меня есть текст "dolar. 2.000.000"

Я пытался использовать \\.\d*?, но . в долларах также удалил

Я хочу, чтобы это отображалось как "dolar. 2000000".

Ответы [ 2 ]

0 голосов
/ 01 января 2019

Вот еще несколько способов сделать это.

str = "dolar. 2.000.000"

Все следующие возвращаемые значения "dolar. 2000000".

str.gsub(/\d\.\d/) { |s| s.delete('.') }

str.gsub(/(\d)\.(\d)/, '\1\2')

h = Hash.new { |_,k| k.delete('.') } #=> {} 
str.gsub(/\d\.\d/, h)

In # 3 h[k] возвращает k.delete('.'), еслихеш не имеет ключа k.Поскольку в хэше нет ключей, которые будут возвращены для всех совпадений.

0 голосов
/ 31 декабря 2018

Используйте положительные lookarounds .

"dolar. 2.000.000".gsub(/(?<=\d)\.(?=\d)/, '')
#⇒ "dolar. 2000000"

(?<=\d) здесь означает «предшествует не включено в цифру совпадения», а (?=\d) означает «сопровождается не включено в совпадение»цифра».

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