在字符串C#中的两个字符之间提取子字符串

Ano*_*urn 1 c# string split substring

我有一个生成的字符串有点像

($AverAbandCalls$+$TotalInboundCalls$)*50+$TotalOutboundCalls$
Run Code Online (Sandbox Code Playgroud)

我想得到$符号之间的每一个.我该怎么办?

我知道可以使用The来完成.Split 但是这给了最后的答案.

我想知道如果有办法以更简单的方式做到这一点.

Ale*_*ici 5

试试这个正则表达式:

(?:\$).*?(?:\$)
Run Code Online (Sandbox Code Playgroud)

由于您使用的是.NET,因此您也可以尝试平衡组:

(?<open>\$).*?(?<final-open>\$)
Run Code Online (Sandbox Code Playgroud)

例:

var input = @"($AverAbandCalls$+$TotalInboundCalls$)*50+$TotalOutboundCalls$";
var reg = new Regex(@"(?<open>\$).*?(?<final-open>\$)");
var matches = reg.Matches(input).Cast<Match>()
    .Select(m=>m.Groups["final"].Value).ToList();

foreach (var item in matches)
{
    Console.WriteLine(item);
}
Run Code Online (Sandbox Code Playgroud)

哪个输出:

AverAbandCalls
TotalInboundCalls
TotalOutboundCalls
Run Code Online (Sandbox Code Playgroud)