比如我有个文本,内容如下,我想根据标志来截取相关内容,截取标志符($E_title$)等中间的内容。$E_title$我们来自天南地北$E_title$$E_body$啬刻非固定好了部队司复活节大法国队军火库弧光灯绿化梵蒂冈军服躲过屡屡梵蒂冈火炬卡发躲过$E_body$$E_name$小飞侠$E_name$
解决方案 »
- ASP.Net如何实现服务端下载,需要哪些权限
- 有关asp网站的简单问题 急!!!!!!
- 2003+iis6+.net framework2.0+.netframework1.1为什么不执行aspx ?
- 求一超难算法:H01LZ010101CB01LF02MN01QB01T010W13701 求这一编码分几级? 详细说明如下......
- 有关用javascript回传值....
- 如何分类计算表格里的项呀?在线等~~~
- 小妹紧急求助:同时连接两个数据库怎么连?
- 防刷新问题,小弟先谢拉~~~
- 再次求救?关于DataGrid的显示问题?
- 请教上传文件的问题?
- Server Error in '/' Application 错误?(asp.net)
- 联动菜单 我用XMLHTTP两次怎么实现?
string str = "$E_title$我们来自天南地北$E_title$$E_body$啬刻非固定好了部队司复活节大法国队军火库弧光灯绿化梵蒂冈军服躲过屡屡梵蒂冈火炬卡发躲过$E_body$$E_name$小飞侠$E_name$";str = str.Replace("$E_title$$E_body$","@@@@").Replace("$E_body$$E_name$","@@@@").Replace("$E_title$","@@@@").Replace("E_name$","@@@@");
string[] s = str.Split("@@@@");string s1 = s[0];
string s2 = s[1];
string s3 = s[2];
using System.Text.RegularExpressions;...
string strDemo="$E_title$我们来自天南地北$E_title$$E_body$啬刻非固定好了部队司复活节大法国队军火库弧光灯绿化梵蒂冈军服躲过屡屡梵蒂冈火炬卡发躲过$E_body$$E_name$小飞侠$E_name$"; strDemo = Regex.Replace(strDemo, @"(\$E_[^\$]*\$)", "|").Replace("||", "|"); strDemo = strDemo.Substring(1, strDemo.Length - 1).Trim(); strDemo = strDemo.Substring(0, strDemo.Length - 1); string[] strOutput = strDemo.Split("|".ToCharArray()); for(int i = 0; i< strOutput.Length; i++)
{
Console.WriteLine((i + 1).ToString() + "、" + strOutput[i]);
} Console.WriteLine(strDemo);
...
但还可以再简单一下
但是如果这样子的话,楼主还不如把间隔符号都设成@@@@呢其实处理这个还是满麻烦的就跟email解码差不多
意图在于读一遍就可以完成,所有写这段程序解码很有艺术思路:
1.首先用indexof 搜寻$得到int iBeginStart,再从iBeginStart+1开始搜寻$一次得到int iBeginEnd,取两点之间的字段strSign
2.然后从iBeginEnd+1开始搜索"$"+strSign+"$"
3.然后取中间字段strContent
4.然后用switch比较strSign和预设字段那个相等
5.就输出strSign :strContent
Regex RegexObj = new Regex("(?#.#)\\b[\\w.]+\\b");
Match MatchResults = RegexObj.Match(SubjectString);
while (MatchResults.Success) {
MatchResults = MatchResults.NextMatch();
}
} catch (ArgumentException ex) {
// Syntax error in the regular expression
}