как разделить, удалить часть данных в столбце с помощью; - PullRequest
0 голосов
/ 18 сентября 2011

Я использую гем Spreadsheet.

Мой код:

book = Spreadsheet.open 'excel-file.xls'
sheet = book.worksheet 0
book.write 'output-file.xls'

Я хочу удалить данные, которые идут после ";" в столбце:

FULTON BANK NA;FULTON BANK

Я просто хочу, чтобы это было, например, FULTON BANK NA.

Кроме того, я хочу оставить данные о ценах следующим образом: $78,000.00 и хочу удалить все другие данные из определенного столбца:

MORTGAGE - CORPORATE;($78,000.00)

Я просто хочу, чтобы это было, например, $78,000.00.

1 Ответ

2 голосов
/ 18 сентября 2011

Вы можете сделать это так:

s = 'FULTON BANK NA;FULTON BANK'
s = s[/[^;]+/]

, который будет выходить перед каждой точкой с запятой в s. Или вы могли бы это так:

s = s.split(';')[0]

Или

s.gsub!(/;.*/, '')  # This modifies s in place

Во-вторых, это зависит от формата ваших данных, но вы можете начать с этого:

s = 'MORTGAGE - CORPORATE;($78,000.00)'
s = s[/\(([^)]+)\)/, 1]

Или, если последний компонент может иметь или не иметь круглые скобки, вы можете сделать что-то вроде этого:

s = s.split(';')[-1].tr('()', '')

Это разделит s на точки в точках с запятой (split(';')), возьмет последний компонент ([-1]), а затем удалит все имеющиеся в нем скобки (.tr('()', '')).

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