perl中的ANSI不能高亮显示啊?
这是《精通正则表达式》第三版上的一个例子,运行后不行啊。大侠们看看什么原因?
$/=".\n";
while(<>){
next unless s{
\b
([a-z]+)
(
(?:
\s
|
<[^>]+>
)+
)
(\1\b)
}
{\e[7m$1\e[m\e[7m$2\e[m\e[7m$3\e[m}igx;
s/^(?:[^\e]*\n)+//mg;
s/^/$ARGV: /mg;
print;
}
测试文件如下:
check for double words(such as this this).
Find you are a a beautiful girl.
Thanks to your help help.
Do you like me me?I think so so.
1234566778899.
123456789a
运行结果如下:
doubleword.txt: check for double words(such as [7mthis[m[7m [m[7mthis[m).
doubleword.txt: * Find you are [7ma[m[7m [m[7ma[m beautiful girl.
doubleword.txt: Thanks to your [7mhelp[m[7m [m[7mhelp[m.
doubleword.txt: Do you like [7mme[m[7m [m[7mme[m?I think [7mso[m[7m [m
[7mso[m.
系统为windows sp3,perl版本为 strawberry5.8.8
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
回复 1# 小perl
在 Linux 下测试正常。程序本身没问题。问题的关键在于终端模拟器是否支持颜色序列,以及支持的标准是怎样的。
Windows 的 CMD 应该是不支持颜色序列的吧,PowerShell 应该支持颜色,但是是否支持与 Linux 终端同样的颜色序列就不清楚了(因为我不使用 Windows)。
谢拉,哈哈。在ubuntu10.10上测试可以通过,也想知道为什么在windows上测试不能通过。期待知道的给咱讲解下。