我正在尝试过滤一个 csv 文件。格式如下
1,2017-06-27,"The Greatest View","Flume Feat. Isabella Manfredi",https://www.shazam.com/it/track/99802230/the-greatest-view,99802230
2,2017-06-26,"Onde (Sondr Remix)","Marco Mengoni",https://www.shazam.com/it/track/357622192/onde-sondr-remix,357622192
3,2017-06-24,"Right Now","SR-71",https://www.shazam.com/it/track/497286/right-now,497286
4,2017-06-22,"Tra Le Granite E Le Granate","Francesco Gabbani",https://www.shazam.com/it/track/350506679/tra-le-granite-e-le-granate,350506679
5,2017-06-22,"Upside Down","Jack Johnson",https://www.shazam.com/it/track/43748028/upside-down,43748028
到目前为止,我正在寻找一个可以返回如下输出的正则表达式:
The Greatest View - Flume Feat. Isabella Manfredi
Onde (Sondr Remix) - Marco Mengoni
等等
我应该使用哪个正则表达式?谢谢
答案1
搜索(使用正则表达式):
.*"(.*)","(.*)".*
并将其替换为:
\1 - \2
我们所做的是寻找与整行匹配的字符串,但将引号之间的两件事捕获到捕获组中,然后在替换中使用这些捕获组。
答案2
这是一个更通用的解决方案:
- 首先替换
,
为\t
- 然后使用正则表达式搜索
^.*?\t
- 用以下任意数量的时间替换
|
使用列选择工具选择所需的列。