如何从字符串中提取字符范围

Big*_*Bug 3 .net c# string

如果我有一个如下字符串:

 String myString = "SET(someRandomName, \"hi\", u)"; 
Run Code Online (Sandbox Code Playgroud)

在哪里我知道它"SET("总是存在于字符串中,但是长度"someRandomName"未知,我将如何删除所有字符"("到第一个实例"""?所以要重新迭代,我想删除这个子字符串:"SET(someRandomName, \""from myString.

我怎么在C#.Net中这样做?

编辑:我不想为此使用正则表达式.

Ond*_*cny 8

提供字符串将始终具有此结构,最简单的方法是使用String.IndexOf()查找第一次出现的索引".String.Substring()然后给你原始字符串的适当部分.

同样,您可以使用从字符串末尾String.LastIndexOf()查找第一个索引.然后,您将能够仅提取第二个参数的值(在您的示例中).""hi"

你最终会得到这样的东西:

int begin = myString.IndexOf('"');
int end = myString.LastIndexOf('"');
string secondArg = myString.Substring(begin, end - begin + 1);
Run Code Online (Sandbox Code Playgroud)

这将产生"\"hi\""secondArg.

更新:要删除字符串的一部分,请使用以下String.Remove()方法:

int begin = myString.IndexOf('(');
int end = myString.IndexOf('"');
string altered = myString.Remove(begin + 1, end - begin - 1);
Run Code Online (Sandbox Code Playgroud)

这将产生"SET(\"hi\", u)"altered.