【问题标题】:Extract portion of text in ASP.NET在 ASP.NET 中提取部分文本
【发布时间】:2013-08-16 04:40:09
【问题描述】:
我需要使用包含在其中的一对标记来提取字符串的子集。例如,给定以下字符串:
Lorem ipsum dolor sit amet,consectetur adipiscing elit。
<!--extract-->Sed nec luctus magna, ac tincidunt metus。保护者
sodales iaculis ipsum sed blandit.<!--/extract--> Quisque tincidunt
nulla sapien,非 faucibus turpis aliquam。
如何提取和之间的所有内容(但不是标签本身)?字符串每次都会有不同的长度,但总是包含标记。
我一直在搞乱String.SubString(),但我正在努力可靠地计算开始/结束索引。请注意,开始/结束标记将始终具有特定值以允许它们被定位。
提前致谢。
【问题讨论】:
标签:
asp.net
.net
vb.net
asp.net-4.5
【解决方案1】:
此代码将帮助您实现您的要求
string s="adipiscing elit.<!--extract-->Sed nec luct<!--/extract-->"
string p = "<!--extract-->";
string q = "<!--/extract-->";
int a = s.IndexOf("<!--extract-->");
int b = s.IndexOf("<!--/extract-->");
string result= s.Substring(a + p.Length, b - (a + p.Length));
【解决方案2】:
从所需字符串的两侧修剪时,我总是发现Substring 两次更容易
string myString = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. <!--extract-->Sed nec luctus magna, ac tincidunt metus. Maecenas sodales iaculis ipsum sed blandit.<!--/extract--> Quisque tincidunt nulla sapien, non faucibus turpis aliquam at.";
myString = myString.Substring(myString.IndexOf("<!--extract-->") + "<!--extract-->".Length);
myString = myString.Substring(0, myString.IndexOf("<!--/extract-->"));
或者,在一次调用中做同样的事情(更丑)
string myString = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. <!--extract-->Sed nec luctus magna, ac tincidunt metus. Maecenas sodales iaculis ipsum sed blandit.<!--/extract--> Quisque tincidunt nulla sapien, non faucibus turpis aliquam at.";
myString = myString.Substring(myString.IndexOf("<!--extract-->") + "<!--extract-->".Length, myString.IndexOf("<!--/extract-->") - myString.IndexOf("<!--extract-->") - "<!--extract-->".Length);