我正在使用Spreadsheet gem。
我的代码是:
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
。
答案 0 :(得分:2)
你可以这样做:
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('()', '')
)