查找和替换,但根据字符数格式化嵌套值?

时间:2013-12-24 21:30:21

标签: notepad++

晚上好!有点难以理解,我不知道是否可以完成?!

我有一个包含数千行的文件。我想搜索一下:

TheValue="12345678"

然后根据有多少个字符格式化“”标记内的数字。例如:


如果“”中有1个字符,请将其更改为:

TheValue="1"

要:

TheValue="1x"


如果“”中有2个字符,请将其更改为:

TheValue="12"

要:

TheValue="12x"


如果“”中有3个字符,请将其更改为:

TheValue="123"

要:

TheValue="1y23x"

如果“”中有4个字符,请将其更改为:

TheValue="1234"

要:

TheValue="12y34x"


如果“”中有5个字符,请将其更改为:

TheValue="12345"

要:

TheValue="1z23y45x"

但是,超过5的任何内容只会将附加数字移到 z

的左侧

如果“”内有6/7/8个字符,请从以下位置更改:

TheValue="123456"
TheValue="1234567"
TheValue="12345678"

要:

TheValue="12z34y56x"
TheValue="123z45y67x"
TheValue="1234z56y78x"

1 个答案:

答案 0 :(得分:1)

好的,我想出了一个解决方案!这是非常手动的,但我很酷〜

查找

TheValue="([a-zA-Z0-9]{1})"
TheValue="([a-zA-Z0-9]{2})"
TheValue="([a-zA-Z0-9]{1})([a-zA-Z0-9]{2})"
TheValue="([a-zA-Z0-9]{2})([a-zA-Z0-9]{2})"
TheValue="([a-zA-Z0-9]{1})([a-zA-Z0-9]{2})([a-zA-Z0-9]{2})"
TheValue="([a-zA-Z0-9]{2})([a-zA-Z0-9]{2})([a-zA-Z0-9]{2})"
TheValue="([a-zA-Z0-9]{3})([a-zA-Z0-9]{2})([a-zA-Z0-9]{2})"
TheValue="([a-zA-Z0-9]{4})([a-zA-Z0-9]{2})([a-zA-Z0-9]{2})"
TheValue="([a-zA-Z0-9]{5})([a-zA-Z0-9]{2})([a-zA-Z0-9]{2})"
TheValue="([a-zA-Z0-9]{6})([a-zA-Z0-9]{2})([a-zA-Z0-9]{2})"

替换为:

TheValue="$1x"
TheValue="$1x"
TheValue="$1y$2x"
TheValue="$1y$2x"
TheValue="$1z$2y$3x"
TheValue="$1z$2y$3x"
TheValue="$1z$2y$3x"
TheValue="$1z$2y$3x"
TheValue="$1z$2y$3x"
TheValue="$1z$2y$3x"

显然你一个接一个地做。一旦我全部使用5位数(x,y和z),我就可以增加第一个([a-zA-Z0-9] {6})值。