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

发布于 2022-10-15 10:15:42 字数 1025 浏览 46 评论 0

这是《精通正则表达式》第三版上的一个例子,运行后不行啊。大侠们看看什么原因?
$/=".\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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

也只是曾经 2022-10-22 10:15:42

回复 1# 小perl

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

歌入人心 2022-10-22 10:15:42

谢拉,哈哈。在ubuntu10.10上测试可以通过,也想知道为什么在windows上测试不能通过。期待知道的给咱讲解下。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文