3

这是一个错误还是我在 CentOS 6.5 与股票 perl 5.10.1 上做错了什么(当试图匹配多人游戏聊天日志中的俄语脏话时)?

# echo блядь | perl -ne 'print if /\bбля/'

# echo блядь | perl -ne 'print if /бля/'
блядь

# echo $LANG
en_US.UTF-8

为什么第一个命令不打印任何内容?

4

1 回答 1

4

您必须告诉 Perl 源代码包含 UTF-8 ( use utf8),并且输入 ( -CI) 和输出 ( -CO) 是 UTF-8 编码的:

echo 'помёт' | perl -CIO -ne 'use utf8; print if /\bпомё/'
于 2014-09-26T07:42:19.887 回答