免费注册 查看新帖 |

Chinaunix

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

perl匹配中文的正则表达式怎么写? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-16 21:46 |只看该作者 |倒序浏览
perl匹配中文的正则表达式怎么写?
我需要一个正则表达式匹配中文字符,不知怎么写

论坛徽章:
0
2 [报告]
发表于 2005-12-16 23:57 |只看该作者
原帖由 雨中漫步 于 2005-12-16 21:46 发表
perl匹配中文的正则表达式怎么写?
我需要一个正则表达式匹配中文字符,不知怎么写

/([\x80-\xFF][\x80-\xFF])/

()里的表示中文双字节。

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
3 [报告]
发表于 2005-12-19 11:04 |只看该作者

论坛徽章:
0
4 [报告]
发表于 2005-12-19 12:33 |只看该作者
可以用Encode::decode()译码后再匹配,如下:
#!/usr/bin/perl -w

use Encode;

$re = Encode::decode('GB2312', '中国');
$in = Encode::decode('GB2312', $ARGV[0]);

if( $in =~/.*$re.*/ ) {
   print $ARGV[0], "\n";
}

论坛徽章:
3
2015亚冠之阿尔希拉尔
日期:2015-08-15 16:33:2215-16赛季CBA联赛之四川
日期:2016-01-03 13:37:0515-16赛季CBA联赛之四川
日期:2016-06-13 15:53:36
5 [报告]
发表于 2014-11-22 14:36 |只看该作者
回复 2# 兰花仙子
请问下仙子,如果表达示中即有中文,又有俄文,那么
([\x80-\xFF][\x80-\xFF])
能区分中文和俄文吗?如果不能,应该怎样区分中文和俄文呢?
如:беспрестанно наказывать 千罚咛万嘱咐
谢谢!

   

论坛徽章:
1
羊年新春福章
日期:2015-04-28 20:40:58
6 [报告]
发表于 2014-11-22 21:15 |只看该作者
学习了~~~~~

论坛徽章:
3
2015亚冠之阿尔希拉尔
日期:2015-08-15 16:33:2215-16赛季CBA联赛之四川
日期:2016-01-03 13:37:0515-16赛季CBA联赛之四川
日期:2016-06-13 15:53:36
7 [报告]
发表于 2014-12-16 12:54 |只看该作者
回复 2# 兰花仙子


    仙子MM,你好!/([\x80-\xFF][\x80-\xFF])/ 不仅可以匹配中文,而且也配俄文,那么怎么才能在中文、俄文中区分出中文或俄文来呢!
minirain
20141216

论坛徽章:
1
操作系统版块每日发帖之星
日期:2016-06-12 06:20:00
8 [报告]
发表于 2014-12-16 13:46 |只看该作者
如果文件是utf8编码的吗?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
9 [报告]
发表于 2014-12-17 09:42 |只看该作者
用这个就可以只匹配中日韩文等没有大小写之分的语言文字: \p{Lo}

测试例子如下:
use Encode qw(encode decode);
$aa = <>;
print $aa;
$aa = decode ( "utf-8",$aa);
binmode STDOUT, ":utf8";
if($aa =~ /\p{Lo}+/){
    print $&;
}

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP