LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 3373|回复: 1

perl正则表达式如何匹配多个单词?

[复制链接]
发表于 2008-12-3 15:41:57 | 显示全部楼层 |阅读模式
我这边有一个汇报的文档,里面记录了用户反馈信息,我需要提取所有的用户名,文档格式比较混乱,用户名都是由英文,数字,@,和下划线构成,我已经用正则表达式@un  =   $_   =~/[\w\@]+/gi获取出来,但是和文中其他的数字混淆,所以我希望用username,user,yonghu,用户等几个特定的单词来区隔,可是不知道怎么用多个单词做正则条件,请指教:
测试的文本如下:
作为教师,我们不可能使用暴力,也清 用户:fdfs楚不能触犯国家法律,于
  是我们大家决定采用不讲课、不布置作业、让学生自习等方式来表示user:ad2123抗议,争取引起政府和username:redalx新闻媒体的注意。
  ”重庆市永川区的李老师说,“当然在这个过程中,也有个别老  师情绪激动,连教室都不愿意yonghu:fsffs进了。”此番停课、罢教活动最早出现在四川省成都市下辖的郫县。
发表于 2008-12-4 22:23:09 | 显示全部楼层
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. {
  5.                 undef $/;
  6.                 $_ =<DATA>;
  7.                 }
  8. my @names = m/(?:username|user|yonghu|用户):([\w\@]+)/gi;
  9. print $_,"\n" foreach @names;
  10. __DATA__
  11. 作为教师,我们不可能使用暴力,也清 用户:fdfs楚不能触犯国家法律,于
  12. 是我们大家决定采用不讲课、不布置作业、让学生自习等方式来表示user:ad2123抗议,争取引起政府和username:redalx新闻媒体的注意。
  13. ”重庆市永川区的李老师说,“当然在这个过程中,也有个别老 师情绪激动,连教室都不愿意yonghu:fsffs进了。”此番停课、罢教活动最早出现在四川省成都市下辖的郫县
复制代码
你这个测试例子给的不好
回复 支持 反对

使用道具 举报

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

本版积分规则

快速回复 返回顶部 返回列表