Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# “替换模式”;1/3“;由「;1/3.0“;_C#_Regex - Fatal编程技术网

C# “替换模式”;1/3“;由「;1/3.0“;

C# “替换模式”;1/3“;由「;1/3.0“;,c#,regex,C#,Regex,我正在寻找一个正则表达式模式,它将“15+15/22-16/33.0”更改为“15+15/22.0-16/33.0”(将除法改为整数,并用浮点除法)。我迄今为止的努力: string test = "15 + 15/22 - 16/33.0"; Regex regex = new Regex(@"(/[0-9]+[^\.])", RegexOptions.None); test = regex.Replace(test, "$1.0"); 返回结

我正在寻找一个正则表达式模式,它将“15+15/22-16/33.0”更改为“15+15/22.0-16/33.0”(将除法改为整数,并用浮点除法)。我迄今为止的努力:

        string test = "15 + 15/22 - 16/33.0";
        Regex regex = new Regex(@"(/[0-9]+[^\.])", RegexOptions.None);
        test = regex.Replace(test, "$1.0");
返回结果
“15+15/22.0-16/33.0.0”
,该结果在“22.0”中有一个空格,以“.0.0”结尾,这不是我所期望的结果。谁能做得更好?

试试下面的方法

string test = "15 + 15/22 - 16/33.0";
Regex regex = new Regex(@"(/[0-9]+)([^\.0-9])", RegexOptions.None);
test = regex.Replace(test, "$1.0$2");
使用环顾四周

(?<=\/)(\d+)\b(?!\.)

(?你为什么要实现这一点。这在我看来并不太聪明。还有字符串减法……他可能只是为了实现这一点而这么做。这可能是他想要强制执行的数学写作惯例。可能有很多事情。你怎么能期望它“聪明”(我想是有用的?)不知道目的?我知道你确实要求这样做,但我仍然发现你评论的后半部分令人恼火地过早,没有价值。为什么?这是一个典型的用户输入。我的程序将其转发给C#编译器运行,评估代码并返回结果。用户希望使用浮点除法,而C#performs是一个整数除法。
string result = Regex.Replace(str, @"(?<=/)(\d+)\b(?!\.)", "$1.0");