regex - 将 lst 文件转换为 csv 需要正则表达式帮助

标签 regex export-to-csv

我有一个从 IMDB Interfaces 下载的文件 (ratings.lst)。内容似乎采用以下格式:-

Distribution   Votes      Rating  Title
0000001222     297339     8.4     Reservoir Dogs (1992)
0000001223     64504      8.4     The Third Man (1949)
0000000115     48173      8.4     Jodaeiye Nader az Simin (2011)
0000001232     324564     8.4     The Prestige (2006)
0000001222     301527     8.4     The Green Mile (1999)

我的目标是将此文件转换为 CSV 文件(逗号分隔),并获得以下所需结果(1 行的示例):

Distribution   Votes      Rating  Title
0000001222,    301527,    8.4,    The Green Mile (1999)

我正在使用文本板,它支持基于正则表达式的搜索和替换。我不确定需要哪种类型的正则表达式才能达到上述预期结果。有人可以帮我解决这个问题吗?提前致谢。

最佳答案

其他正则表达式有些过于复杂。因为空白保证不会出现在前三列中,所以您不必进行花哨的匹配 - “三列 任何内容 由空白分隔”即可。

尝试将^(.+?)\s+(.+?)\s+(.+?)\s+(.+?)$替换为\1,\2\3,"\4" 给出以下输出(使用 Notepad++)

Distribution,Votes,Rating,"Title"
0000001222,297339,8.4,"Reservoir Dogs (1992)"
0000001223,64504,8.4,"The Third Man (1949)"
0000000115,48173,8.4,"Jodaeiye Nader az Simin (2011)"
0000001232,324564,8.4,"The Prestige (2006)"
0000001222,301527,8.4,"The Green Mile (1999)"

请注意使用非贪婪量词 .+?,以防止意外匹配超出我们应有的数量。另请注意,我用引号 "" 将第四列括起来,以防电影标题中出现逗号 - 否则您用来读取文件的软件将解释 Avatar, the Last Airbender 作为两列。

漂亮的表格对齐方式消失了 - 但如果您在 Excel 中打开文件,它看起来会很好。

Alternately, just do the entire thing in Excel.

关于regex - 将 lst 文件转换为 csv 需要正则表达式帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10242301/

相关文章:

regex - 使用 Perl 正则表达式提取第 n 个出现

java - 正则表达式匹配单个字符

csv - 将 yajra 数据表的所有数据导出到 csv

postgresql - 无法使用 aws_s3.query_export_to_s3 函数将 AWS RDS Postgres 表导出到 S3 中的 CSV

sql - 使用动态文件名将 sql 函数的输出保存到 csv 文件(COPY)

regex - 匹配除包含 '_iq_' 以外的所有内容

c# - 正则表达式:如何不匹配单词的最后一个字符?

java - 将文件路径更改为更常见的文件夹

jquery - Coldfusion 为某些类添加 id

google-chrome - 将 Google 翻译结果导出为 CSV?