用正则表达式修剪前导零

时间:2015-06-12 10:54:50

标签: regex leading-zero

我正在努力让正则表达式表达起作用。

我需要根据前导零的存在允许以下变换......

  
      
  1. 001234 - > 1234
  2.   
  3. 1234 - > 1234
  4.   
  5. 00AbcD - > ABCD
  6.   
  7. 001234.1234 - > 1234.1234
  8.   
  9. 001234.000002 - > 1234.2
  10.   
  11. 001234/000002 - > 1234.2
  12.   

我发现表达式匹配适用于变换1,2和& 3但我不确定如何匹配4,5和4中演示的(可选)第二部分。 6。

^0*([0-9A-Za-z]*$)

2 个答案:

答案 0 :(得分:2)

您可以使用以下正则表达式获取零:

/(?:^|[./])0+/g

Demo

并将第二组替换为第一组(\1)。

例如在python中,我可以执行以下操作:

>>> s="""001234
... 1234
... 00AbcD
... 001234.1234
... 001234.000002
... 001234/000002"""

>>> [re.sub(r'(:?^|[./])0+',r'\1',i) for i in s.split()]
['1234', '1234', 'AbcD', '1234.1234', '1234.2', '1234/2']

答案 1 :(得分:0)

^(0+)(.+)

第2组应该是结果。