C#怎么用正则取关键字后面的字符串啊?
然后在取关键字那行后几行中要的数据啊?
就是怎么定义“交易终端:”为关键字,然后取后面那串字符,好像是8个那样,然后在去这个关键字这行下面第三行的红色字体的那些数据,这样就取完一次,然后再取第二次关键字“交易终端:”后面的字符串,按照这样取到这个“交易终端:”关键字最后一行不在出现为止。
Excel的内容:
银联公用POS交易对帐单
商户名称:深圳市深港机动车驾驶培训集团有限公司开户银行:中国建设银行股份有限公司深圳大鹏支行
商户代码:898440382490593 开户帐号:44201597000052504631
—
清算日期:160503 同城交易日期:20160429-20160502
—
交易终端:05932058 境内卡扣率:0.0076,境外卡扣率:0.0085
—
系统参考号 银行帐号 发卡银行 交易类型 交易金额 应扣回佣 交易日
114845087991 439226******3668 招商银行 消费 5880.00 44.98 160429
114804088161 439226******3668 招商银行 消费 5880.00 44.98 160429
—
交易金额小计: 11760.00
回佣金额小计: 89.96
结算金额小计: 11670.04
—
交易终端:0593JU03 境内卡扣率:0.0076,境外卡扣率:0.0085
—
系统参考号 银行帐号 发卡银行 交易类型 交易金额 应扣回佣 交易日
173722339006 623035******9644 农商银行 消费 6180.00 47.28 160429
—
交易金额小计: 6180.00
回佣金额小计: 47.28
结算金额小计: 6132.72
—
交易终端:0593JU08 境内卡扣率:0.0076,境外卡扣率:0.0085
—
系统参考号 银行帐号 发卡银行 交易类型 交易金额 应扣回佣 交易日
202354478689 622848*********3772 农业银行 消费 5880.00 44.98 160429
—
交易金额小计: 5880.00
回佣金额小计: 44.98
结算金额小计: 5835.02
—
交易终端:0593JU11 境内卡扣率:0.0076,境外卡扣率:0.0085
—
系统参考号 银行帐号 发卡银行 交易类型 交易金额 应扣回佣 交易日
150011210954 625996******8333 农业银行 消费 7280.00 55.69 160429
—
交易金额小计: 7280.00
回佣金额小计: 55.69
结算金额小计: 7224.31
—
单日商户金额小计: 31100.00
单日回佣金额小计: 237.91
单日结算金额小计: 30862.09
—
交易终端:05932011 境内卡扣率:0.0076,境外卡扣率:0.0085
—
系统参考号 银行帐号 发卡银行 交易类型 交易金额 应扣回佣 交易日
155132479302 623058*********1645 平安银行 消费 5880.00 44.98 160430
155045480435 623058*********1645 平安银行 消费 5880.00 44.98 160430
—
交易金额小计: 11760.00
回佣金额小计: 89.96
结算金额小计: 11670.04
然后在取关键字那行后几行中要的数据啊?
就是怎么定义“交易终端:”为关键字,然后取后面那串字符,好像是8个那样,然后在去这个关键字这行下面第三行的红色字体的那些数据,这样就取完一次,然后再取第二次关键字“交易终端:”后面的字符串,按照这样取到这个“交易终端:”关键字最后一行不在出现为止。
Excel的内容:
银联公用POS交易对帐单
商户名称:深圳市深港机动车驾驶培训集团有限公司开户银行:中国建设银行股份有限公司深圳大鹏支行
商户代码:898440382490593 开户帐号:44201597000052504631
—
清算日期:160503 同城交易日期:20160429-20160502
—
交易终端:05932058 境内卡扣率:0.0076,境外卡扣率:0.0085
—
系统参考号 银行帐号 发卡银行 交易类型 交易金额 应扣回佣 交易日
114845087991 439226******3668 招商银行 消费 5880.00 44.98 160429
114804088161 439226******3668 招商银行 消费 5880.00 44.98 160429
—
交易金额小计: 11760.00
回佣金额小计: 89.96
结算金额小计: 11670.04
—
交易终端:0593JU03 境内卡扣率:0.0076,境外卡扣率:0.0085
—
系统参考号 银行帐号 发卡银行 交易类型 交易金额 应扣回佣 交易日
173722339006 623035******9644 农商银行 消费 6180.00 47.28 160429
—
交易金额小计: 6180.00
回佣金额小计: 47.28
结算金额小计: 6132.72
—
交易终端:0593JU08 境内卡扣率:0.0076,境外卡扣率:0.0085
—
系统参考号 银行帐号 发卡银行 交易类型 交易金额 应扣回佣 交易日
202354478689 622848*********3772 农业银行 消费 5880.00 44.98 160429
—
交易金额小计: 5880.00
回佣金额小计: 44.98
结算金额小计: 5835.02
—
交易终端:0593JU11 境内卡扣率:0.0076,境外卡扣率:0.0085
—
系统参考号 银行帐号 发卡银行 交易类型 交易金额 应扣回佣 交易日
150011210954 625996******8333 农业银行 消费 7280.00 55.69 160429
—
交易金额小计: 7280.00
回佣金额小计: 55.69
结算金额小计: 7224.31
—
单日商户金额小计: 31100.00
单日回佣金额小计: 237.91
单日结算金额小计: 30862.09
—
交易终端:05932011 境内卡扣率:0.0076,境外卡扣率:0.0085
—
系统参考号 银行帐号 发卡银行 交易类型 交易金额 应扣回佣 交易日
155132479302 623058*********1645 平安银行 消费 5880.00 44.98 160430
155045480435 623058*********1645 平安银行 消费 5880.00 44.98 160430
—
交易金额小计: 11760.00
回佣金额小计: 89.96
结算金额小计: 11670.04
解决方案
35
对正则也是懵懂,试着写了一下
var s = Regex.Matches(HHHH, @"交易终端:(?<ATM>[0-9A-Z]*)([\s\S]*?\r\n){3,3}(?<VALUE>([\s\S]*?\r\n)*?)\s(-+)\s"); foreach (Match m in s) { Console.WriteLine(m.Groups["ATM"].Value + "\n" + m.Groups["VALUE"].Value); Console.WriteLine(); }