Regex REQUEX将字符串转换为带分隔符和逗号的限定双字符串

Regex REQUEX将字符串转换为带分隔符和逗号的限定双字符串,regex,format,Regex,Format,我需要一个正则表达式来排序任何分隔符并保留逗号。此外,还应将以下零进行排序 因此,123.456780000应转换为123456789 使用(?=.*?(.[1-9])(?!.*?\)(?=0*$)^.*$我得到123.456789 现在的问题是如何消除“”?您可以使用带有 [^\d,]|(,\d*?[1-9])0+$ 和$1(或\1)替换模式,将组1的内容保留在字符串中(请参见下面的说明) 看 详细信息 [^\d,]-除数字和逗号以外的任何字符 |-或 (,\d*?[1-9])-第1组:逗

我需要一个正则表达式来排序任何分隔符并保留逗号。此外,还应将以下零进行排序

因此,
123.456780000
应转换为
123456789

使用
(?=.*?(.[1-9])(?!.*?\)(?=0*$)^.*$
我得到
123.456789


现在的问题是如何消除“”?

您可以使用带有

[^\d,]|(,\d*?[1-9])0+$
$1
(或
\1
)替换模式,将组1的内容保留在字符串中(请参见下面的说明)

详细信息

  • [^\d,]
    -除数字和逗号以外的任何字符
  • |
    -或
  • (,\d*?[1-9])
    -第1组:逗号,任何零位或多位数字,尽可能少
  • 0+$
    -字符串末尾的一个或多个
    0
    s

    • 谢谢你的回答,威克托。我使用您的第一个提示,并在预处理步骤中删除点。你的第二个答案对我不适用。我使用匹配,而不是用正则表达式替换。找到了第一个点,但没有删除。因此,我没有得到我需要的号码作为结果。第一个匹配是第一个点的位置。

      作为后处理步骤删除这些点。