假设:
pad_
pad_
pad_
如何使用正则表达式作为" for循环"获得:
pad_1
pad_2
pad_3
我知道可以在替换表达式中使用诸如\1
和\2
之类的编号序列来指示现有文本中的()
捕获,但是单个替换表达式可以生成其自己的替换值作为数字序列?除了保持一个包含我可以复制/粘贴的数字序列的文本文件,或编写一个使用" for循环输出文本的快速应用程序之外,还有某种技巧可以实现这一点吗?
结论:我的印象是正则表达式语法不是文本编辑应用程序统一实现的标准,也不包含任何符合在替换表达式中使用匹配计数或启动的目的的内容替换文本序列。不幸的是,这意味着我需要使用像vim这样的文本编辑器,这些编辑器可以用于不适合它们的目的,或者尝试为我将要使用的文本编辑器或IDE查找或制作应用程序插件。但实际上编译和运行一个快速的循环"实际上要简单得多。打印字符串供我复制/粘贴,我可以通过改变方式重复使用,或使用建议的awk
。
答案 0 :(得分:3)
如果perl没问题,我想awk也可以:
awk '$0=$0 NR' file
我没有notepad ++,但这对vim来说很容易。
%s/$/0/
这会将0
附加到每一行ggVG
gCtrl-A
看起来像:
V
)您想要追加的行seq :'<,'>s/$/\=line('.')-line("'<")+1
当您按:
时,'<,'>
范围将自动填充答案 1 :(得分:0)
TextPad https://textpad.com/index.html
TextPad将执行此操作。它具有一个内置功能,可以增加一个计数器\ i
\ i从1开始并以1递增
\ i(100)从100开始并以1递增
\ i(100,10)从100开始并以10递增
等