我有一根天然的绳子
- RTT(50)
- RTT(A)(50)
- RTT(A)(B)(C)(50)
我想要的是从字符串中删除最后一次出现的 () 。也就是说,如果字符串是 - RTT(50),那么我只想返回 RTT。如果是 RTT(A)(50),我希望返回 RTT(A) 等。
我如何实现这一点?我目前使用的是一种子字符串方法,无论如何都可以删除任何出现的 () 。我想到了使用:
Regex.Matches(node.Text, "( )").Count
为了计算出现的次数,我做了类似下面的事情。
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(" ("));
else 部分将做我想做的。但是,如何删除 if 部分中的最后一次出现是我卡住的地方。
最佳答案
String.LastIndexOf
方法可以满足您的需要 - 返回字符或字符串的最后一个索引。
如果您确定每个字符串都至少有一组括号:
var result = node.Text.Substring(0, node.Text.LastIndexOf("("));
否则,您可以测试 LastIndexOf
的结果:
var lastParenSet = node.Text.LastIndexOf("(");
var result =
node.Text.Substring(0, lastParenSet > -1 ? lastParenSet : node.Text.Count());
关于c# - 删除字符串中最后一次出现的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23556020/