gpt4 book ai didi

regex - 删除制表符 - perl

转载 作者:行者123 更新时间:2023-12-04 06:15:09 26 4
gpt4 key购买 nike

我正在使用以下 perl 表达式从 here 中删除制表符

$text =~ s{(.*?)\t}{$1.(' ' x ($g_tab_width - length($1) % $g_tab_width))}ge;

我已将我的理解和翻译简化为以下内容(假设制表符宽度为四个空格)
$text =~  s/(.*?)\t/'    '/;

但我觉得我违反了爱因斯坦的教导

Make things as simple as possible, but not simpler.



我正在使用以下输入字符串进行测试。
"\t \t"
"\t\t \t"
"\t\t \t\t \t"
"\t\t \t\t \t"

有人可以演示一个输入字符串会在这两者之间产生不一致的结果吗? (在删除标签的问题空间内)

最佳答案

我假设你的第二个简化表达式应该是:

$text =~ s/(.*?)\t/$1    /g;
# four spaces -------^^^^

还有那个 $g_tab_width是四;在这里我没有其他任何意义,所以我会过着危险的生活,并假设事情应该是有意义的。

鉴于此,几乎任何带有标签的东西都会产生不同的结果。例如:
"where\tis pancakes house?"

产生这些结果:
"Where   is pancakes house?"   # Long method.
"Where is pancakes house?" # Simplified method.

直播版: http://ideone.com/LbnNx

只有当您的非制表符组件都是 4*n 个字符时,它们才会产生相同的结果,例如:
"xxxx\tyyyy\tzzzz"

直播版: http://ideone.com/Kvp3l

关于regex - 删除制表符 - perl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7343053/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com