【发布时间】:2026-01-20 20:25:02
【问题描述】:
我正在尝试编写一个简单的命令行脚本来修复一些空格,并且需要用制表符替换出现的两个空格,但前提是它出现在行首(仅由其他制表符前缀。)
我想出了s/^(\t*) /\1\t/g;,如果我通过多次传递,它可以完美地工作,但是我对 perl 的了解不够,不知道如何循环,直到字符串没有改变,或者是否有正则表达式方式处理它。
我唯一的想法是使用lookbehind,但它不能是可变长度。如果它足够短以适合快速命令行脚本,我会接受非正则表达式解决方案。
作为参考,当前的 perl 脚本是这样执行的:
perl -pe 's/^(\t*) /$1\t/g'
【问题讨论】: