不在两位数之间时删除小数点

我正在清理搜索字符串,需要删除任何出现的句点,但是当它们在两位数之间时保留小数点。

例如,如果我有一个字符串

599.75,老虎队。

然后我希望它回来

599.75,老虎队

我在想一条像:

strNewString = RegEx.Replace(strOrigString,strRegEx,string.Empty);

strRegEx只会匹配。删除但是我很难搞清楚如何只匹配。 而不是周围的事情。

你应该利用前瞻和后瞻性的断言 。 它们实际上并不匹配输入中的字符,而只是确定匹配是否可行。
您可以使用负向前瞻和负面后瞻来做相反的事情,这是适当的。 对strRegEx使用以下strRegEx将匹配未被数字包围的句点:

 (? 

我读这个问题的方式是,只有当数字不是前后数字时才想匹配一个点。 例如,在下面的列表中,您希望匹配除最后一个字符串之外的每个字符串中的点,因为这是唯一一个在其两侧都有数字的字符串。

  ABC。
 .DEF
 XY
 123。
 0.456
 x.78
 90.x
 599.75 

接受的答案是(? ,仅匹配前三个字符串; 它相当于:

 a dot, ( (not preceded by a digit) AND (not followed by a digit) ) 

如果我的解释是正确的,你想要这样的东西:

 (? 

......相当于:

 (a dot, not preceded by a digit) OR (a dot, not followed by a digit) 

在任何情况下,在讨论文本匹配时都要尽可能准确,特别是当它涉及使用外观时。

你可以用\.(?!\d)类的东西\.(?!\d)