使用正则表达式修剪前导零

Trimming leading zeros with regex

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

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

  1. 001234 -> 1234
  2. 1234 -> 1234
  3. 00AbcD -> AbcD
  4. 001234.1234 -> 1234.1234
  5. 001234.000002 -> 1234.2
  6. 001234/000002 -> 1234.2

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

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

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

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

Demo

并将第二组替换为第一组 (</code>)。 </p> <p>例如,在 python 中,我可以执行以下操作:</p> <pre><code>>>> s="""001234 ... 1234 ... 00AbcD ... 001234.1234 ... 001234.000002 ... 001234/000002""" >>> [re.sub(r'(:?^|[./])0+',r'',i) for i in s.split()] ['1234', '1234', 'AbcD', '1234.1234', '1234.2', '1234/2']

^(0+)(.+)

第 2 组应该是结果。