正则表达式怎样替换成tab键?
时间:2010-10-18
来源:互联网
eg:
my $test ="aaaaaaaa|ab";
$test =~s/\|/;/g;
print "".$test."\n";
这样就可以替换,但是如果替换成tab键,该怎样替换呢?
如果是一个文件
my $test ="abc.txt";
怎样进行替换?
谢谢大家的帮助!
作者: qingduo04 发布时间: 2010-10-18
文件的话,先打开文件,读取它,再逐行匹配和替换。
作者: 兰花仙子 发布时间: 2010-10-18
仙子,现在我是用这个替换的,但是却有
my $test ="aaaaaaaa|ab";
$test =~s/\|/\t/g;
print "".$test."\n";
变量$test的内容不一样,却有不同的答案
如下:
E:\programme>perl E:\programme\正则表达式.pl
aaa ab
E:\programme>perl E:\programme\正则表达式.pl
aaaaaaaa ab
不知道怎么解决呢?
作者: qingduo04 发布时间: 2010-10-18
\t的显示效果是8的整数倍列对齐,显示时候它不是固定宽度的。你如果想列对齐的话应该用 sprintf
作者: zhlong8 发布时间: 2010-10-18

我把结果复制上来,如上图,tab键显示是>号,而打印出来的是空格键,不知道我这样理解是不是正确?
作者: qingduo04 发布时间: 2010-10-18
不知道你图什么意思,我也给你画个图:)
“abc\td"
显示为:
abc d #中间5个空格
"abcdefgh\ti"
显示为:
abcdefgh i #中间8个空格
因为你的第一个aaa只有3个字符,所以\t的下一个字符就放在下一个8的整数倍列,所以显示效果为3个空格的距离,第二个你有8个a所以\t的下一个字符就是在下一组8的整数倍列的开始了
反正\t至少占一个字符的宽度显示为空格的效果,然后把下一个字符推到8的整数倍列
作者: zhlong8 发布时间: 2010-10-18
谢谢,清楚了。
我那张图片,第一行是程序中打印的。
第二行是我在UE中,敲入tab键显示的。
第三行是程序跑出来的结果,我复制的。
因为我做bi负责接口,而有的平台给的数据是其他分隔符,这边的负责人,让全部把非tab键的分隔符,替换成tab键,我不知道用刚刚的方法能不能实现这个功能?
作者: qingduo04 发布时间: 2010-10-18
作者: zhlong8 发布时间: 2010-10-18
谢谢,已经实现了,也实现了文件内容的替换。
实现的原理:
打开文件,一行一行的去替换,然后又一行一行的写入到文件中,不知道这样效率高不高?有没有更高的方法,还烦指点。
数据文件的记录条数可能有几百万或者几千万。
作者: qingduo04 发布时间: 2010-10-18
作者: zhlong8 发布时间: 2010-10-18
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28