我们如何通过位置和分隔符提取字符串的子字符串

时间:2010-04-07 09:06:05

标签: c# .net winforms string

我们如何划分字符串

中的子字符串

就像我有字符串

String mainString="///Trade Time///Trade Number///Amount Rs.///";

现在我有其他字符串

String subString="Amount"

然后我想在第二个字符串 subString 的帮助下提取子字符串Amount Rs.而不是通过任何其他方法提取它但是它应该通过两个参数提取,首先是我有索引否数量字符串和秒,直到下一个字符串///.

4 个答案:

答案 0 :(得分:26)

首先获取子字符串的索引:

int startIndex = mainString.IndexOf(subString);

然后获取以下斜杠的索引:

int endIndex = mainString.IndexOf("///", startIndex);

然后你可以得到你想要的子串:

string amountString = mainString.Substring(startIndex, endIndex - startIndex);

答案 1 :(得分:1)

这应该可以解决你的问题:

mainString.substring(mainString.IndexOf("Amount Rs. "), "///")

其中mainString.IndexOf("Amount Rs. ")开始索引 &安培; "///"结束索引

答案 2 :(得分:1)

string str = Regex.Match("///(?<String>[^/]*?" + subString + "[^/]*?)///").Groups["String"].Value;

应该使用String.Format但@字符串中{x}的确切用法赢得正则表达式我不记得了(你需要加倍{}吗?)

N.B:这假设您不期待任何/,因此可以稍微改进一下。

答案 3 :(得分:0)

作为@Guffa答案的补充,你可以用它来制作扩展方法:

注意:没有验证可确保提供的索引位于字符串的边界内。

public static class StringExtensions
{

    public static string SubstringBetweenIndexes(string value, int startIndex, int endIndex)
    {
        return value.Substring(startIndex, endIndex - startIndex);
    }

}
相关问题