删除字符串中最后一次出现的字符串

Nur*_*ihu 10 c# string

我有一个自然的字符串

  • RTT(50)
  • RTT(A)(50)
  • RTT(A)(B)(C)(50)

我想要的是从字符串中删除last()事件.也就是说,如果字符串是 - RTT(50),那么我只想返回RTT.如果是RTT(A)(50),我想要RTT(A)返回等.

我该如何实现这一目标?我目前使用子串方法,无论如何都会取出任何出现的().我想过使用:

Regex.Matches(node.Text, "( )").Count
Run Code Online (Sandbox Code Playgroud)

要计算出现的次数,所以我做了类似下面的事情.

 if(Regex.Matches(node.Text, "( )").Count > 1)
      //value = node.Text.Remove(Regex.//Substring(1, node.Text.IndexOf(" ("));
 else
     value = node.Text.Substring(0, node.Text.IndexOf(" ("));
Run Code Online (Sandbox Code Playgroud)

else部分会做我想要的.但是,如何删除if部分中的最后一个匹配项是我被卡住的地方.

Gra*_*ICA 8

String.LastIndexOf方法可以满足您的需要 - 返回char或string的最后一个索引.

如果您确定每个字符串至少有一组括号:

var result = node.Text.Substring(0, node.Text.LastIndexOf("("));
Run Code Online (Sandbox Code Playgroud)

否则,您可以测试以下结果LastIndexOf:

var lastParenSet = node.Text.LastIndexOf("(");

var result =
    node.Text.Substring(0, lastParenSet > -1 ? lastParenSet : node.Text.Count());
Run Code Online (Sandbox Code Playgroud)


小智 6

这应该做你想要的:

your_string = your_string.Remove(your_string.LastIndexOf(string_to_remove));
Run Code Online (Sandbox Code Playgroud)

就这么简单。