【发布时间】:2012-05-22 12:00:14
【问题描述】:
我有一个 CSV 文件 file1.csv,它具有自定义格式,包含三列,如下所示:
This is some data. [text] This is some more data.
- 第一个
[之前的所有内容都在第一列中。 - 第一组方括号之间的所有内容都在第二列中。
- 第一个
]之后的所有内容都在第三列中,无论后面是什么内容。
例如:
First. [second] Third.
^ ^
我想将文件的行排序为两个文件,withnumbers.csv 和 withoutnumbers.csv,本质上是通过在第三列中包含数字的那些和在第三列中不包含数字的那些。
后面的方括号可能会出现,但它们不被视为新列,它们仍然是第三列数据的一部分,例如:
First. [second] Third. [some more text] This is still in the third column.
^ ^
包含数字的行可以匹配它们,例如*0*、*1*、*2* 等。这些都包含数字:
Water is H20.
The bear ate 2,120 fish.
The Wright Flyer flew in 1903.
在第三列的一对方括号中的任何位置找到的数字都不算作匹配,例如,这些行将被发送到withoutnumbers.csv:
First. [second] Some text. [This has the number 1.]
First. [second] Some more text. [The Wright Flyer flew in 1903.]
这些将被发送到withnumbers.csv,因为它们在方括号之外仍然有一个数字,但在第三列内:
First. [second] Some text with 1. [This has the number 1.]
First. [second] Some more text with the number 3. [The Wright Flyer flew in 1903.]
如何将文件的行排序为第三列中包含数字的行,而不考虑方括号内的数字和不包含数字的行?
【问题讨论】:
-
为什么称它为 CSV(逗号分隔值)文件?