因为数据服务填报系统中有个数据需要进行简易的处理,即移除数据列表中的文件大小,而此数据是csv格式的文件,首先想到的就是通过openoffice来进行快捷的处理。
1、OpenOffice尝试
OpenOffice中也有正则支持,默认是关闭的,在“查找与替换”中,点击“更多选项”,然后选择正则表达式,即可打开正则表达式支持。
实际上,我需要运行的正则很简单,即:
\(.*?MB\)
将此内容替换为空即可。
但不知道什么原因,在openoffice中运行此正则不成功,只能查找到部分结果。
2、gedit尝试
gedit也有正则支持的插件,即高级查找替换插件。安装之后运行效果也很好,非常直观。但最后发现对csv全局替换会有误伤,即前面括号中内容也给替换掉了。
3. sql尝试
最终就想在postgresql数据库里直接使用正则进行替换,发现postgresql中有一个regexp_replace函数,可以直接支持sql上进行正则,因此尝试用这个SQL来替换:
select regexp(datalist,'\(.+?MB\)','') from offlineapp
但这个每行只替换了一个第一个后就返回了,因此还需要添加一个flag:
select regexp(datalist,'\(.+?MB\)','',‘g') from offlineapp
发表回复