用于计算的正则表达式

时间:2019-04-09 05:40:47

标签: c# regex

我有一个表示calcul的字符串,我想用正则表达式替换以$开头的所有数据。

示例:

value : $Var1+10*$Var2/$Var3-$Var4

我想要4组:

$Var1 $Var2 $Var3 $Var4

我尝试过此正则表达式:

 \$.+?)[+-\/*]

第三个组($Var1 $Var2 $Var3)可以,但$Var4则不能。 这是因为$Var4就在字符串结尾之前,我找不到在列表中添加“字符串结尾”的解决方案。

我尝试过:

\$.+?)[+-\/*$] 

\$.+?)[+-\/*\$]

但不起作用。

因此,我想采用任何解决方案在列表[]中添加“字符串结尾”。

谢谢

查理

1 个答案:

答案 0 :(得分:2)

如果您想要一个能给您变量名的正则表达式,那就是这样:

\$Var\d+

您无需添加任何内容即可在字符串的开头或结尾开始搜索。正则表达式不需要此。对于您的测试字符串“ $ Var1 + 10 * $ Var2 / $ Var3- $ Var4”,这将仅返回所有变量名称。参见here

如果您的变量名不一定包含Var,但始终以美元符号开头,那么您可以使用下面的正则表达式来匹配它们。

\$\w+