C# 删除起始和结束之间字符串的一部分

C# 删除起始和结束之间字符串的一部分,c#,string,C#,String,代码优先: string myString = "<at>onePossibleName</at> some question here regarding <at>disPossibleName</at>" // some code to handle myString and save it in myEditedString Console.WriteLine(myEditedString); //output

代码优先:

   string myString = "<at>onePossibleName</at> some question here regarding <at>disPossibleName</at>"
    // some code to handle myString and save it in myEditedString
    Console.WriteLine(myEditedString);
    //output now is: some question here regarding <at>disPossibleName</at>
这里的问题是,如果
onePossibleName
变成
一个可能的名称


使用myString.Remove(startIndex,count)的尝试也是如此。这不是解决方案。

根据您的需要,会有不同的方法,您可以使用IndexOf和子字符串,regex也是一个解决方案

// SubString and IndexOf method
// Usefull if you don't care of the word in the at tag, and you want to remove the first at tag
if (myString.Contains("</at>"))
{
    var myEditedString = myString.Substring(myString.IndexOf("</at>") + 5);
}
//子字符串和IndexOf方法
//如果您不关心at标记中的单词,并且希望删除第一个at标记,则此选项非常有用
if(myString.Contains(“”)
{
var myEditedString=myString.Substring(myString.IndexOf(“”+5);
}
//Regex方法
var stringToRemove=“onePossibleName”;
var rgx=新的正则表达式($“{stringToRemove}”);
var myEditedString=rgx.Replace(myString,string.Empty,1);//“1”表示仅替换第一个匹配项

您可以使用此通用正则表达式

var myString = "<at>onePossibleName</at> some question here regarding <at>disPossibleName</at>";
var rg = new Regex(@"<at>(.*?)<\/at>");
var result = rg.Replace(myString, "").Trim();
var myString=“onePossibleName关于disPossibleName的一些问题”;
var rg=新的正则表达式(@“(.*));
var result=rg.Replace(myString,“”.Trim();
这将删除所有“at”标记和之间的内容。调用
Trim()
是为了在替换后删除字符串开头/结尾的所有空白。

string myString=“onePossibleName”有关disPossibleName的一些问题
string myString = "<at>onePossibleName</at> some question here regarding <at>disPossibleName</at>"

int sFrom = myString.IndexOf("<at>") + "<at>".Length;
int sTo = myString.IndexOf("</at>");

string myEditedString = myString.SubString(sFrom, sFrom - sTo);
Console.WriteLine(myEditedString);
//output now is: some question here regarding <at>disPossibleName</at>
int-sFrom=myString.IndexOf(“”+“”)长度; int sTo=myString.IndexOf(“”); 字符串myEditedString=myString.SubString(sFrom,sFrom-sTo); 控制台写入线(MyEditeString); //现在的输出是:关于可处置名称的一些问题
这可能的副本有点不清楚。它可以是任何字符串?那么,您如何知道要删除的字符串?它是否总是在
标记内?此处没有足够的详细信息。请使用正则表达式删除之间的字符串
var myString = "<at>onePossibleName</at> some question here regarding <at>disPossibleName</at>";
var rg = new Regex(@"<at>(.*?)<\/at>");
var result = rg.Replace(myString, "").Trim();
string myString = "<at>onePossibleName</at> some question here regarding <at>disPossibleName</at>"

int sFrom = myString.IndexOf("<at>") + "<at>".Length;
int sTo = myString.IndexOf("</at>");

string myEditedString = myString.SubString(sFrom, sFrom - sTo);
Console.WriteLine(myEditedString);
//output now is: some question here regarding <at>disPossibleName</at>