代替我需要更换像这样的列表:记事本++正则表达式与ZEROFILL
105164 25
105164 26
105164 29
105496 1
105496 2
要
105164_0025
105164_0026
105164_0029
105496_0001
105496_0002
像(\w)([0-9]+)
到_$1
但如何做到左零填充的东西吗?
代替我需要更换像这样的列表:记事本++正则表达式与ZEROFILL
105164 25
105164 26
105164 29
105496 1
105496 2
要
105164_0025
105164_0026
105164_0029
105496_0001
105496_0002
像(\w)([0-9]+)
到_$1
但如何做到左零填充的东西吗?
[ ]([0-9]+) to _$1 --do your first replace
_([0-9])$ to _000$1
_([0-9][0-9])$ to _00$1
_([0-9][0-9][0-9])$ to _0$1
种类的作弊方法,但这是我能想到的唯一方法。
尼斯编辑。我会使用没有方括号的“”,但它使得它在堆栈溢出时更具可读性。 – beiller 2014-09-02 13:29:26
_([0-9])$到'_000 $ 1'(下划线) – DanFromGermany 2014-09-02 13:31:15
固定。你也可以通过3次替换来完成这项工作,将它们结合在一起。另外我想知道它是否可能使用OR(|) – beiller 2014-09-02 13:32:10
可以分两次做:
第一关:
查找内容:_0000$1
第二关::
查找内容:_0*(\d{4})$
更换(\d+)$
与更换与:_$1
好主意!只有空格仍然存在,或者应该在'[](\ d +)$'中有一个空格,并且它被截断:D – 2014-09-02 14:56:53
@ Jonny5:空格在这里,但在'(\ d +)' – Toto 2014-09-02 15:01:11
单个正则表达式不能做到这一点。也许Notepad ++有一个选项来右对齐列?然后你可以使用正则表达式来填充数字而不是空格。 – 2014-09-02 13:26:41
你说的是一种不规则的语言,不能用正则表达式来表达。 – HuStmpHrrr 2014-09-02 13:29:27