【发布时间】:2016-09-15 21:45:31
【问题描述】:
我有一个结构如下的示例文件,我想对其执行一些操作:
1112283569;AOEEEEAOAO.;300012299419;0030000302;ALLE;0.00;0.00;0.00;0.00;79149449.66;0.00;7914944
1112283569;AOEEEEAOAO.;300012;;;;AAAAA299419;*;;0.00;0.00;0.00;0.00;79149449.66;0.00;79149449.66
1112283569;AOEEEEAOAO.;*;*;;0.00;0.;;;;;;;;;00;0.00;0.00;79149449.66;0.00;79149449.66;0.00;79149
*;CON;*;0030000302;ΑLLEO;0.00;0.00;0.00;0.00;79149449.66;0.00;79149449.66;0.00;79149449.66;0.00
;CONE:;*;*;;0.00;0.00;0.00;0.00;79149449.66;0.00;79149449.66;0.00;;;79149449.66;0.00
我正在尝试为此提出解决方案。我需要读取一个看起来像上面的文件, 由';'分隔我需要一次检查每行第三个分隔符之后的字符。它不会在一个 静态列,所以我需要一些方法来捕获第 n 个分隔符 (;) 之后的字符,我可以用正则表达式来做到这一点(我认为。)
即,对于上述输出:
第 1 行 - 不满足条件 第 2 行 - 不符合条件 第 3 行 - 符合条件 第 4 行 - 不符合条件 第 5 行 - 满足条件
最后它会输出类似:
1112283569;AOEEEEAOAO.;*;*;;0.00;0.;;;;;;;;;00;0.00;0.00;79149449.66;0.00;79149449.66;0.00;79149
;CONE:;*;*;;0.00;0.00;0.00;0.00;79149449.66;0.00;79149449.66;0.00;;;79149449.66;0.00
(仅第三个分隔符后的第一个字符为 * 的行) 我找到了这种类型的正则表达式,但我不确定它是否适用于这种情况? :
/\%(^\%([^ ]* \)\{6\}\)\@<=.
【问题讨论】: