免费注册 查看新帖 |

Chinaunix

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

请高手帮忙! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-20 11:48 |只看该作者 |倒序浏览
10可用积分
有一个.txt文本里面的内容是这样的(截取一部分)
Abel亚伯
Abraham亚伯拉罕
Adam亚当
Adrian艾德里安
Alva阿尔瓦
Alex亚历克斯
Alexander亚历山大
Alan艾伦
Albert艾伯特
Alfred阿尔弗雷德
Andrew安德鲁
Andy安迪
Angus安格斯
Anthony安东尼
Arthur亚瑟
Austin奥斯汀
Ben本
Benson本森
Bill比尔
Bob鲍伯
Brandon布兰登
Brant布兰特
Brent布伦特
Brian布莱恩
Bruce布鲁斯
Carl卡尔
Cary凯里
Caspar卡斯帕
Charles查尔斯
现在我只要中文的,前面的英文我不需要,请问该如何做?split(/??/)用什么切分?

论坛徽章:
0
2 [报告]
发表于 2009-08-20 12:14 |只看该作者

回复 #1 clustertech 的帖子

不要用split了,试一下.
s/\w*//;  把前面的英文去掉就可以了

论坛徽章:
30
水瓶座
日期:2014-08-22 21:06:3415-16赛季CBA联赛之新疆
日期:2015-12-19 19:05:48IT运维版块每日发帖之星
日期:2015-12-25 06:20:31IT运维版块每日发帖之星
日期:2015-12-25 06:20:31IT运维版块每日发帖之星
日期:2015-12-25 06:20:3315-16赛季CBA联赛之上海
日期:2016-04-15 19:51:31程序设计版块每日发帖之星
日期:2016-04-17 06:23:29程序设计版块每日发帖之星
日期:2016-04-23 06:20:00程序设计版块每日发帖之星
日期:2016-05-26 06:20:00每日论坛发贴之星
日期:2016-05-26 06:20:0015-16赛季CBA联赛之辽宁
日期:2017-02-16 23:59:4715-16赛季CBA联赛之天津
日期:2019-01-11 01:11:44
3 [报告]
发表于 2009-08-20 12:17 |只看该作者
原帖由 clustertech 于 2009-8-20 11:48 发表
有一个.txt文本里面的内容是这样的(截取一部分)
Abel亚伯
Abraham亚伯拉罕
Adam亚当
Adrian艾德里安
Alva阿尔瓦
Alex亚历克斯
Alexander亚历山大
Alan艾伦
Albert艾伯特
Alfred阿尔弗雷德
Andr ...

while(<DATA>){
print ($2) if /^[A-Z](\w+)(\W+)/;
}

__DATA__
Abel亚伯
Abraham亚伯拉罕
Adam亚当
Adrian艾德里安
Alva阿尔瓦
Alex亚历克斯
Alexander亚历山大
Alan艾伦
Albert艾伯特
Alfred阿尔弗雷德
Andrew安德鲁
Andy安迪
Angus安格斯
Anthony安东尼
Arthur亚瑟
Austin奥斯汀
Ben本
Benson本森
Bill比尔
Bob鲍伯
Brandon布兰登
Brant布兰特
Brent布伦特
Brian布莱恩
Bruce布鲁斯
Carl卡尔
Cary凯里
Caspar卡斯帕
Charles查尔斯

status.JPG (8.72 KB, 下载次数: 38)

status.JPG

论坛徽章:
0
4 [报告]
发表于 2009-08-20 12:21 |只看该作者
匹配汉字
use Encode;
$_="abc你好wert";
$a=decode('cp936',$_);
($x)=($a=~m/(\p{Han}+)/);
print encode('cp936',$x),"\n";

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
5 [报告]
发表于 2009-08-20 14:07 |只看该作者
s/[a-z]+//i;

论坛徽章:
0
6 [报告]
发表于 2009-08-20 14:16 |只看该作者
原帖由 shijiang1130 于 2009-8-20 12:17 发表

while(){
print ($2) if /^[A-Z](\w+)(\W+)/;
}

__DATA__
Abel亚伯
Abraham亚伯拉罕
Adam亚当
Adrian艾德里安
Alva阿尔瓦
Alex亚历克斯
Alexander亚历山大
Alan艾伦
Albert艾伯特
Alfred阿尔弗 ...

我想问下,$1与$2有什么区别?因为我开始写的是$1,打印出来的全是英文字?

论坛徽章:
0
7 [报告]
发表于 2009-08-20 14:41 |只看该作者
$1表示模式中第一个()中匹配的内容,$2表示第二个.
15、模式次序变量
   在模式匹配后调用重用部分的结果可用变量$n,全部的结果用变量$&。
     $string = "This string contains the number 25.11.";
     $string =~ /-?(\d+)\.?(\d+)/; # 匹配结果为25.11
     $integerpart = $1; # now $integerpart = 25
     $decimalpart = $2; # now $decimalpart = 11
     $totalpart = $&; # now totalpart = 25.11

论坛徽章:
0
8 [报告]
发表于 2009-08-25 10:17 |只看该作者
长见识。

论坛徽章:
0
9 [报告]
发表于 2009-08-25 13:48 |只看该作者
原帖由 flw 于 2009-8-20 14:07 发表
s/[a-z]+//i;



我顶flw的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP