如何在c#中以反向模式进行子串

N2J*_*N2J 2 c# string reverse substring

我的字符串是"csm15 + abc-indiaurban @ v2".我只想从我的字符串中"indiaurban".我现在正在做的是:

var lastindexofplusminus = input.LastIndexOfAny(new char[]{'+','-'});

var lastindexofattherate = input.LastIndexOf('@');

string sub = input.Substring(lastindexofplusminus,lastindexofattherate);
Run Code Online (Sandbox Code Playgroud)

但得到错误"索引和长度必须引用字符串中的位置."

提前致谢.

Ian*_*Ian 7

你应该把length对的Substring,你要抢的第二个参数强似另一个指标.鉴于您知道这两个索引,对长度的转换非常简单:

string sub = input.Substring(lastindexofplusminus + 1, lastindexofattherate - lastindexofplusminus - 1);
Run Code Online (Sandbox Code Playgroud)

注意,+1需要之后获得char lastindexofplusminus.-1需要得到Substring他们之间lastindexofattherate本身.