C# 如果小数点不在两位数之间,则删除小数点

C# 如果小数点不在两位数之间,则删除小数点,c#,regex,C#,Regex,我正在清理搜索字符串,需要删除所有出现的句点,但保留小数点,当它们位于两位数之间时 例如,如果我有一个字符串 599.75,老虎队 那么我希望它能作为 599.75,老虎队 我在想这样一句话: strNewString=RegEx.Replace(strOrigString,strRegEx,string.Empty) strRegEx将只匹配要删除的,但我很难弄清楚如何只匹配。而不是它周围的东西。你可以使用类似于\(?!\d)的东西,你应该利用它。它们实际上并不匹配输入中的字符,而只是确定是否

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

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

599.75,老虎队

那么我希望它能作为

599.75,老虎队

我在想这样一句话:

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


strRegEx将只匹配要删除的,但我很难弄清楚如何只匹配。而不是它周围的东西。

你可以使用类似于
\(?!\d)
的东西,你应该利用它。它们实际上并不匹配输入中的字符,而只是确定是否可能匹配。
你可以使用消极的lookaheads和消极的lookbehinds来做相反的事情,这在这里是合适的。对stregex使用以下内容将匹配不被数字包围的句点:

(?<!\d)\.(?!\d)

(?我阅读问题的方式是,仅当点的前后没有数字时,您才希望匹配点。例如,在下面的列表中,您希望匹配除最后一个字符串外的每个字符串中的点,因为这是唯一两边都有数字的字符串

abc. .def x.y 123. .456 x.78 90.x 599.75 如果我的解释是正确的,你想要这样的东西:

(?<!\d)\.|\.(?!\d)

无论如何,在谈论文本匹配时,尽可能精确是值得的,特别是当涉及到使用查找工具时。

这很有效,您链接的教程页面非常有用。谢谢!
(?<!\d)\.|\.(?!\d)
(a dot, not preceded by a digit) OR (a dot, not followed by a digit)