正则表达式 – 使用正则表达式可以使用零填充整数吗?

前端之家收集整理的这篇文章主要介绍了正则表达式 – 使用正则表达式可以使用零填充整数吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在一些文本中,我有一系列不同长度的数字(从1到6位数字).我想通过用零填充较短的数字来平衡所有这些数字的长度.

例如.以下4行 –

  1. A1:11
  2. A2:112
  3. A3:223333
  4. A4:1333
  5. A5:19333
  6. A6:4

应该是填充整数

  1. A1:000011
  2. A2:000112
  3. A3:223333
  4. A4:001333
  5. A5:019333
  6. A6:000004

我使用“sed”和以下combesome表达式:

  1. sed -e 's/:\([0-9]\{1\}\)\>/:00000\1/' \
  2. -e 's/:\([0-9]\{2\}\)\>/:0000\1/' \
  3. -e 's/:\([0-9]\{3\}\)\>/:000\1/' \
  4. -e 's/:\([0-9]\{4\}\)\>/:00\1/' \
  5. -e 's/:\([0-9]\{5\}\)\>/:0\1/'

有可能这样做比这更好吗?

您可以用太多的零填充,然后只保留最后六位数:
  1. sed -e 's/:/:00000/;s/:0*\([0-9]\{6,\}\)$/:\1/'

结果:

  1. A1:000011
  2. A2:000112
  3. A3:223333
  4. A4:001333
  5. A5:019333
  6. A6:000004

使用awk可能会更好:

  1. awk -F: '{ printf("%s:%06s\n",$1,$2) }'

猜你在找的正则表达式相关文章