+ -
当前位置:首页 → 问答吧 → perl中的ANSI不能高亮显示啊?

perl中的ANSI不能高亮显示啊?

时间:2011-04-13

来源:互联网

这是《精通正则表达式》第三版上的一个例子,运行后不行啊。大侠们看看什么原因?
$/=".\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 this this).
doubleword.txt: * Find you are a a beautiful girl.
doubleword.txt: Thanks to your help help.
doubleword.txt: Do you like me me?I think so 
so.


系统为windows sp3,perl版本为 strawberry5.8.8

作者: 小perl   发布时间: 2011-04-13

回复 小perl

在 Linux 下测试正常。程序本身没问题。问题的关键在于终端模拟器是否支持颜色序列,以及支持的标准是怎样的。
Windows 的 CMD 应该是不支持颜色序列的吧,PowerShell 应该支持颜色,但是是否支持与 Linux 终端同样的颜色序列就不清楚了(因为我不使用 Windows)。

作者: Monox   发布时间: 2011-04-13