C# 用于解释整数/双量程输入的正则表达式或解释器

C# 用于解释整数/双量程输入的正则表达式或解释器,c#,regex,parsing,interpreter,C#,Regex,Parsing,Interpreter,我需要验证字符串是否为以下格式 {x:y}或{x,y,…,z},其中x,y,z为整数或双精度。 我在想我要么需要一个reg ex,要么需要一个口译员。 有人知道怎么做吗? 此外,如果您建议图书馆这样做,我们将不胜感激 第二步是使用一个解释程序来解释如下表达式: 0.5*{0.4,0.6,0.7} -> {0.2,0.3,0.35}. 我意识到,最佳的方法是为此定义一个口译员可以使用的语法 谢谢, B我自己并不擅长正则表达式,但我确实用它作为获取它们的来源:它还包括一个备忘单和该站点上的正则表达式

我需要验证字符串是否为以下格式 {x:y}或{x,y,…,z},其中x,y,z为整数或双精度。 我在想我要么需要一个reg ex,要么需要一个口译员。 有人知道怎么做吗? 此外,如果您建议图书馆这样做,我们将不胜感激

第二步是使用一个解释程序来解释如下表达式: 0.5*{0.4,0.6,0.7} -> {0.2,0.3,0.35}. 我意识到,最佳的方法是为此定义一个口译员可以使用的语法

谢谢,
B

我自己并不擅长正则表达式,但我确实用它作为获取它们的来源:它还包括一个备忘单和该站点上的正则表达式测试程序,因此您可以非常轻松地创建它们

希望这有帮助

第一种选择

\{[0-9]+(\.[0-9]+)?:[0-9]+(\.[0-9]+)?\}
第二

\{[0-9]+(\.[0-9]+)?(,[0-9]+(\.[0-9]+)?)+\}
用法

如果要同时检查这两种类型,请将regex更改为:

\{([0-9]+(\.[0-9]+)?:[0-9]+(\.[0-9]+)?)|([0-9]+(\.[0-9]+)?(,[0-9]+(\.[0-9]+)?)+)\}

假设有101种不同的双精度格式,.net framework中内置了double.TryParse()

我将使用regex或just string.split获取包含“x,y,z”值的字符串数组,然后对每个值调用Double.TryParse


由于您有两种可能的格式,我会首先检查输入字符串是否包含“:”然后使用单独的代码拆分每种格式,以使代码更易于理解。

我们谈论的是哪种双符号?只有1.2或类似1.2E-10的东西是的,只有1.2种就好了这是个好主意,谢谢!我希望尽可能多地使用.net内置函数。我只是想知道是否有一个开源的库已经做到了这一点。
\{([0-9]+(\.[0-9]+)?:[0-9]+(\.[0-9]+)?)|([0-9]+(\.[0-9]+)?(,[0-9]+(\.[0-9]+)?)+)\}