如何使用IndexOf解析特定的字符串?

时间:2014-06-26 23:14:54

标签: c# .net string

string responser = contents.Substring(f + firstTag.Length, g - f - firstTag.Length);
string dateTag = "בתאריך";
string wroteResponser = ":כתב";
int i = responser.IndexOf(dateTag);
int p = responser.IndexOf(wroteResponser );
string test = responser.Substring(i + dateTag.Length, p + wroteResponser.Length - i - dateTag.Length);

在响应者中我有:כתב:רוטריתבתאריך:26.06.14שעה:22:58 我想从中删除这部分:כתב:רוטרית

所以最后我只会以此结尾:בתאריך:26.06.14שעה:22:58 我这样做的方式一直是-1,而且我认为测试也是错误的。

3 个答案:

答案 0 :(得分:1)

为什么不使用String.Replace(" stringyouwantremoved","");这将返回原始字符串减去要删除的字符串。

答案 1 :(得分:1)

p = -1的原因是因为writeResponser应该是“כתב:”而不是“:כתב” 但是,你的整个前提是错误的。

您正在寻找删除部件。

            string responser = "כתב: רוטרית בתאריך: 26.06.14 שעה: 22:58 ";
            string dateTag = "בתאריך";
            string wroteResponser = "כתב:";
            int i = responser.IndexOf(dateTag);
            int p = responser.IndexOf(wroteResponser);


            string test = responser.Remove(p, i);

另一个解决方案是使用正则表达式

        var match = Regex.Match(responser,"כתב: .+בתאריך:(.+) ",RegexOptions.Compiled);
        var u = match.Groups[1].Value;

לילהלבןשמח;)

答案 2 :(得分:0)

Int start = 0;

Int end = [some number];

字符串测试=响应。删除(开始,结束);

除非我不理解这个问题,否则这样的事情应该有效。