C#如果按照要求提取字符串中指定的数据项

问题描述

字符串如下:店铺:*****商铺*******交易时间:2016-05-2816:47:25营业员:收银员:张三交易方式:销售单据号:6U4452800015顾客卡号:2100*****9156手机号码:186****6500统参考号:000628550564---------------------购物明细--------------------商品数量方式单价折扣金额1621450313331111658100%658.00---------------------支付方式--------------------总计:1总金额:658.00信用卡:658店铺:*****商铺*******交易时间:2016-05-2816:47:25营业员:收银员:张三交易方式:销售单据号:6U4452800016顾客卡号:2100*****9156手机号码:186****6500系统参考号:000628550564---------------------购物明细--------------------商品数量方式单价折扣金额21621450313331111429100%429.00---------------------支付方式--------------------总计:1总金额:429.00信用卡:429店铺:*****商铺*******交易时间:2016-05-2816:47:25营业员:收银员:张三交易方式:销售单据号:6U4452800017顾客卡号:2100*****9156手机号码:186****6500系统参考号:000628550564---------------------购物明细--------------------商品数量方式单价折扣金额21621450313331111958100%958.00---------------------支付方式--------------------总计:1总金额:958.00信用卡:958需要将如上的字符串中,提取【单据号:】后面的12位字符,同时需要提取【总金额:】后面的金额项,要将上面的字符串转换成如下的三条记录:6U4452800015658.006U4452800016429.006U4452800017958.00C#应该怎么实现呀。谢谢啦!

解决方案

解决方案二:
用c#操作文件,取每一行,再截取
解决方案三:
stringtest=@"店铺:*****商铺*******交易时间:2016-05-2816:47:25营业员:收银员:张三交易方式:销售单据号:6U4452800015顾客卡号:2100*****9156手机号码:186****6500统参考号:000628550564---------------------购物明细--------------------商品数量方式单价折扣金额1621450313331111658100%658.00---------------------支付方式--------------------总计:1总金额:658.00信用卡:658店铺:*****商铺*******交易时间:2016-05-2816:47:25营业员:收银员:张三交易方式:销售单据号:6U4452800016顾客卡号:2100*****9156手机号码:186****6500系统参考号:000628550564---------------------购物明细--------------------商品数量方式单价折扣金额21621450313331111429100%429.00---------------------支付方式--------------------总计:1总金额:429.00信用卡:429店铺:*****商铺*******交易时间:2016-05-2816:47:25营业员:收银员:张三交易方式:销售单据号:6U4452800017顾客卡号:2100*****9156手机号码:186****6500系统参考号:000628550564---------------------购物明细--------------------商品数量方式单价折扣金额21621450313331111958100%958.00---------------------支付方式--------------------总计:1总金额:958.00信用卡:958";RegexregOrder=newRegex("单据号:(.+)");MatchCollectionmatchOrder=regOrder.Matches(test);RegexregMoney=newRegex("总金额:(.+)");MatchCollectionmatchMoney=regMoney.Matches(test);StringBuildersb=newStringBuilder();MessageBox.Show(matchOrder.Count.ToString()+matchMoney.Count.ToString());for(inti=0;i<matchOrder.Count;i++){sb.Append(matchOrder[i].Groups[1].Value.TrimEnd());sb.Append("");sb.Append(matchMoney[i].Groups[1].Value);}this.richTextBox1.Text=sb.ToString();

解决方案四:
stringtxt=@"楼主发表于:2016-05-3112:30:55字符串截取字符串如下:店铺:*****商铺*******交易时间:2016-05-2816:47:25营业员:收银员:张三交易方式:销售单据号:6U4452800015顾客卡号:2100*****9156手机号码:186****6500统参考号:000628550564---------------------购物明细--------------------商品数量方式单价折扣金额1621450313331111658100%658.00---------------------支付方式--------------------总计:1总金额:658.00信用卡:658店铺:*****商铺*******交易时间:2016-05-2816:47:25营业员:收银员:张三交易方式:销售单据号:6U4452800016顾客卡号:2100*****9156手机号码:186****6500系统参考号:000628550564---------------------购物明细--------------------商品数量方式单价折扣金额21621450313331111429100%429.00---------------------支付方式--------------------总计:1总金额:429.00信用卡:429店铺:*****商铺*******交易时间:2016-05-2816:47:25营业员:收银员:张三交易方式:销售单据号:6U4452800017顾客卡号:2100*****9156手机号码:186****6500系统参考号:000628550564---------------------购物明细--------------------商品数量方式单价折扣金额21621450313331111958100%958.00---------------------支付方式--------------------总计:1总金额:958.00信用卡:958";stringpattern=@"(?<=单据号s*:s*)([^nr]*)[sS]*?总金额s*:s*([^nr]*)";foreach(MatchminRegex.Matches(txt,pattern)){Console.WriteLine("单据号:{0}总金额:{1}",m.Groups[1].Value,m.Groups[2].Value);}

时间: 2024-11-29 19:28:58

C#如果按照要求提取字符串中指定的数据项的相关文章

MFC怎样提取字符串中两个逗号之间 的数据

问题描述 MFC怎样提取字符串中两个逗号之间 的数据 比如字符串: "$GPGGA,024055.00,4002.2168,N,11618.1074,E,1,12,0.0,75.88,M," 怎样提取两个逗号之间的数据,例如"4002.2168"? 我试着使用例如 .Mid(17,14)函数,但是并不好用,因为字符串的长度经常会改变. 解决方案 先用CString的Find找到前后两个逗号的位置,然后在用Mid来截取.这样就可以适应动态变化的字符串 解决方案二: 参

php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符

 PHP使用正则表达式提取字符串中尖括号<>.小括号().中括号[].大括号{}中的字符示例,需要的朋友可以参考下    代码如下: $str="你好<我>(爱)[北京]{天安门}";    echo f1($str); //返回你好  echo f2($str); //返回我  echo f3($str); //返回爱  echo f4($str); //返回北京  echo f5($str); //返回天安门    function f1($str)  { 

java-获取字符串中指定单词的开始和结束位置?

问题描述 获取字符串中指定单词的开始和结束位置? 有一个较长的String字符串 还有有一个String单词数组 要查找单词数组里的每一个单词在字符串中的位置(int start和int end). 比如单词为:Hi 字符串为:Hi,I am Mark. 那么Hi的start为1 end为2 有没有什么算法可以比较好的做出来? 需求:有个单词数组.要将单词数组里的单词在字符串中显示高亮. 发现:SpannableStringBuilder里有个setSpan可以做到. 但setSpan需要设置高

字符串截取-C# 提取字符串中“所有”满足格式的字符串,怎么提取?

问题描述 C# 提取字符串中"所有"满足格式的字符串,怎么提取? 小弟正在做一个读取支付宝的订单的软件,读取订单不是利用官方的API,是从网页上抓取的, 每行订单信息都抓成了字符串,但是遇到了一个问题,就是如何把字符串分解了,然后保存到数据库, 值得庆幸的是,每个需要提取出来的数据 前 和后 都有规律 我一开始想的是 Regex.Match(str, "(?<= ).*?(?= )").Value; 用这个函数截取 和 之间的内容,但是只能截取到一个, 我想的

括号-提取字符串中多位数字

问题描述 提取字符串中多位数字 我只会提取单个字符串,多个字符就不行了 2(10)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0) 目标把取出括号里面的数字 例如10需要有通用型 解决方案 字符串替换 String str =" 2(10)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)"; String result = str.replace("(","").replace.(")",

javascript-js提取字符串中所有含有png资源的名称。

问题描述 js提取字符串中所有含有png资源的名称. 各位大神好,我有个需求就是用js提取字符串中所有含有png资源的名称.包括两种类型 xx.png 类型和this.ui("iconSpr").startLoad("icon_skill_"+this._model.getValue("cId")+"_"+d["idx"]+"_png");这种拼接类型的.有这方面的经验的大神 ,给我指点

删除字符串中指定位置的字符

/********************************************************************** * 版权所有 (C)2015, Wu Yingqiang. * * 文件名称:DelPosChar.c * 文件标识:无 * 内容摘要:删除字符串中指定位置的字符 * 其它说明:无 * 当前版本: V1.0 * 作 者: Wu Yingqiang * 完成日期: 20150115 * ***********************************

c++-如何提取字符串中的字符型数字

问题描述 如何提取字符串中的字符型数字 char a[100]="delete N";//N为数字 要想把里面的N提取出来,因为N是字符串里的数字,所以应该是字符型,怎么把它转化 为整型(int)呢? 求解答! 解决方案 仅供参考 int getNum(char a[]) { int i =0,num =0; while(a[i] != '') { if( a[i] >= '0' && a[i] <= '9') num = num *10 +a[i] - '

字符串截取-C#,或者在ORACLE中如何提取字符串中的信息

问题描述 C#,或者在ORACLE中如何提取字符串中的信息 C#,或者在ORACLE中如何提取字符串中的信息,比如: string a=[123][22][3132][]...以此类推,我想要提取所有[]的后2个数字,比如[123],提取出0和23两个数字,然后所有数字相加.求高手用正则表达式,或者更好理解的方式帮忙解决下,,,,