正则表达式 - 在句点之前替换字符串中的特定零

时间:2018-05-17 10:45:08

标签: c# regex

对于这样一个直接的问题感到抱歉,但我花了一点时间试图找到一个可以改变以下字符串的合适的RegEx:

  • 01.10
  • 10.01

将它们设置为:

  • 1.10
  • 10.1

所以基本上总是在每个句点之前或最后一个序列中删除完整序列中的第一个'0'。

这是否可以使用RegEx,因为目前似乎不是这样?

2 个答案:

答案 0 :(得分:0)

试试这个:

查找:(^|\.)0+

替换:$1

参见here演示

注意:如果表达式在字符串的开头是不是,则不应使用^,而应使用单词边界\b,如下所示:

(\b|\.)0+

最终,双重逃脱它:

(\\b|\.)0+

请参阅other demo

答案 1 :(得分:0)

也许你可以尝试使用这个正则表达式。这与0.0或0.1中的零不匹配,但仅在前导零之后有数字时才会匹配。

\b0+(?=\d\.\d+\b)|(?<=\b\d+\.)0+(?=\d+\b)

  • new字边界
  • \b匹配零并使用正向前瞻来断言零后跟一个数字,点,一个或多个数字和一个单词边界
  • 0+(?=\d\.\d+\b)
  • |正面的后视断言,左边的是一个字边界,一个或多个数字和一个点。然后匹配一个或多个零,并断言后面的id是一个或多个数字和一个wordboundary。