用点(。)和逗号(,)包括分隔符替换尾随零正则表达式,

时间:2012-03-09 15:22:24

标签: php regex

我使用此正则表达式从带有点(.)分隔符的数字中删除尾随零:

(?:(\.\d*[1-9])|\.)0*$ 

我正在替换为$1

示例:

  • 9.50
  • 2.00
  • 3.06
  • 3.000

它会给我:

  • 9.5
  • 2
  • 3.06
  • 3

但它似乎与逗号(,)的工作方式不同。我试过这个但没有运气:

(?:(\,\d*[1-9])|\,)0*$

我是PHP的新手,这是我的第一个问题。提前谢谢。

2 个答案:

答案 0 :(得分:3)

如果这些是单独的字符串,仅限数字,则使用:[.,]?0*$并将其替换为空字符串。

答案 1 :(得分:2)

假设您的意思是用逗号(如1,50)替换十进制数的尾随零,而不是使用逗号将数字替换为三元组,而是搜索(\d*[.,](?:\d*[1-9]|))0*$并将其替换为$1

如果正则表达式与您的字符串不匹配,则不存在点或逗号,这意味着该数字不是小数部分,因此您不希望删除尾随零,因为它们很重要。

请记住,使用正则表达式,您需要转义点,因为它是一个特殊符号(括号之间除外),但您不应该转义逗号