从文档中:
这个迭代器,也许更恰当地称为 Line Pattern Iterator,读取文件并根据正则表达式每行返回一个实例。
如果您有表格的数据
[名称] [标签] [数据]
您感兴趣的电话是
CsvIterator(java.io.Reader input, java.lang.String lineRegex,
int dataGroup, int targetGroup, int uriGroup)
第一个参数是读取数据的方式,例如文件读取器或字符串读取器。第二个参数是用于从读取器读取的每一行中提取数据的正则表达式。在你的例子中,你得到了(\\w+)\\s+(\\w+)\\s+(.*)
which 转化为:
- 1 个或多个字母数字字符(捕获组,这是实例的名称),后跟
- 1 个或多个空白字符(制表符、空格、..),后跟
- 1 个或多个字母数字字符(捕获组,这是标签/目标),后跟
- 1 个或多个空白字符(制表符、空格、..),后跟
- 0 个或多个字符(这是数据)
数字3, 2, 1
表示数据在后,目标在后,名称在前。正则表达式基本上确保每行的格式如文档中所述:
test1 spam Wanna buy viagra?
test2 not-spam Hello, are you busy on Sunday?
CsvIterator
是一个糟糕的名字,因为这个类读入的实际上不是逗号分隔的值,而是空格分隔的(空格、制表符、...)值。