小弟正在做一个读取支付宝的订单的软件,读取订单不是利用官方的API,是从网页上抓取的,
每行订单信息都抓成了字符串,但是遇到了一个问题,就是如何把字符串分解了,然后保存到数据库,
值得庆幸的是,每个需要提取出来的数据 前 和后 都有规律
我一开始想的是 Regex.Match(str, "(?<=\n).*?(?=\r)").Value;
用这个函数截取\n 和\r之间的内容,但是只能截取到一个,
我想的是Regex.Match能不能匹配出所有的满足格式的字符串,组成一个数组。
大哥大姐们帮帮忙看看怎么处理
\r\n2015.09.16 \r\n\r\n11:46 \r\n\r\n充值-普通充值 \r\n\r\n流水号 2015...632 \r\n\r\n中国农业银行 \r\n\r\n\r\n\r\n\r\n+100.00 \r\n交易成功\r\n\r\n\r\n备注 删除 \r\n\r\n备注 \r\n
使用正则表达试就可以了
string str = @"\r\n2015:12:02\r\n\r\nQweoruqwer\r\n\r\n";
string[] strList = str.Split(new string[] {@"\r\n"}, StringSplitOptions.RemoveEmptyEntries);
Regex.Matches
没事多看文档,先把类库里提供的类方法记住大概,用的时候就不会抓瞎了
String target="\r\n2015.09.16 \r\n\r\n11:46 \r\n\r\n充值-普通充值 \r\n\r\n流水号 2015...632 \r\n\r\n中国农业银行 \r\n\r\n\r\n\r\n\r\n+100.00 \r\n交易成功\r\n\r\n\r\n备注 删除 \r\n\r\n备注 \r\n";
String[] targetA=target.split("\r\n",0);
int targetLength=9;
String[] targetB=new String[targetLength];//目标长度是固定的
int count=0;
for(int i=0;i<targetA.length;i++){
if(!"".equals(targetA[i])){
targetB[count]=targetA[i];
count++;
}
}
System.out.println(targetB[0]+targetB[1]+"--"+targetB[targetLength-1]);
java 与C# 语法略有差异,稍微调整一下即可用