免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5752 | 回复: 10
打印 上一主题 下一主题

perl匹配中文问题,请问有什么解决方法? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-04-16 14:46 |只看该作者 |倒序浏览
我想匹配出这样一行文本内容: alarm 2656894445  发生告警   故障告警   1000

但是中文一直未能输出. 中文应该用什么进行匹配处理输出呢???

论坛徽章:
0
2 [报告]
发表于 2008-04-16 15:09 |只看该作者
use encoding ????
中文没有玩过
只是可能需要打开perl的unicode支持?
瞎说的

论坛徽章:
0
3 [报告]
发表于 2008-04-16 16:19 |只看该作者
是不是太简单了 大家都不懒的回答.   偶小菜一个希望各位高手多多指教

论坛徽章:
0
4 [报告]
发表于 2008-04-16 16:48 |只看该作者
#
use Encode;

$dat="测试文本";
$str=decode("gb2312",$dat);

print encode("gb2312",$str),"\n";
#

可以看一下perldoc encode;
读的时候要用decode函数来解码成perl内部的字符
$string = decode(ENCODING, $octets [, CHECK])

输出要用encode函数
$octets = encode(ENCODING, $string [, CHECK])

这里中文的encoding就是gb2312

[ 本帖最后由 narrowgate 于 2008-4-16 16:54 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2008-04-16 16:54 |只看该作者
我试了试,可以匹配啊

#!/usr/bin/perl
use strict;
use warnings;

my $test = 'this is a test: alarm 2656894445  发生告警   故障告警   1000. blalalala';
my $tpl = 'alarm 2656894445  发生告警   故障告警   1000';

print "ok" if $test =~ /$tpl/;

论坛徽章:
0
6 [报告]
发表于 2008-04-16 16:57 |只看该作者
好像。。是可以的说。。


原帖由 cobrawgl 于 2008-4-16 16:54 发表
我试了试,可以匹配啊

#!/usr/bin/perl
use strict;
use warnings;

my $test = 'this is a test: alarm 2656894445  发生告警   故障告警   1000. blalalala';
my $tpl = 'alarm 2656894445  发生告警 ...

论坛徽章:
0
7 [报告]
发表于 2008-04-16 17:02 |只看该作者
楼上兄弟 我没太理解你的意思  我要做的是从一个log中匹配出这样的一条信息 ???

论坛徽章:
0
8 [报告]
发表于 2008-04-16 17:04 |只看该作者
把你的 log 贴出一部分来,大家研究一下嘛

论坛徽章:
0
9 [报告]
发表于 2008-04-16 17:06 |只看该作者
那可能跟input文件的编码有关了?

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
10 [报告]
发表于 2008-04-16 17:07 |只看该作者
原帖由 wuyue1106 于 2008-4-16 14:46 发表
我想匹配出这样一行文本内容: alarm 2656894445  发生告警   故障告警   1000

但是中文一直未能输出. 中文应该用什么进行匹配处理输出呢???

如果log的编码与perl程序的编码一样..
则直接匹配即可..
例如
$xa =~/发生告警   故障告警/;

如果你是说要把任意中文字给匹配出来..可能你要用unpack先转成16进制..再去查一下..
中文字的编码范围...找出可能的中文字...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP