我有一个自然的字符串
我想要的是从字符串中删除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部分中的最后一个匹配项是我被卡住的地方.
该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)
就这么简单。
| 归档时间: |
|
| 查看次数: |
12171 次 |
| 最近记录: |