我有一个具有以下格式的特定模式
string exp = "$(2.1)+$(3.2)-tan($(23.2)) * 0.5";
Run Code Online (Sandbox Code Playgroud)
使用此代码,我得到以下结果
var doubleArray = Regex
.Split(str, @"[^0-9\.]+")
.Where(c => c != "." && c.Trim() != "")
.ToList();
//result
[2.1,3.2,23.2,0.5]
Run Code Online (Sandbox Code Playgroud)
我想分开号码$().即预期的结果是
[2.1,3.2,23.2]
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我建议提取Matches而不是Split:
string exp = "$(2.1)+$(3.2)-tan($(23.2)) * 0.5";
var doubleArray = Regex
.Matches(exp, @"\$\((?<item>[0-9.]+)\)")
.OfType<Match>()
.Select(match => match.Groups["item"].Value)
.ToList();
Console.WriteLine(string.Join("; ", doubleArray));
Run Code Online (Sandbox Code Playgroud)
结果:
2.1; 3.2; 23.2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
99 次 |
| 最近记录: |