免费注册 查看新帖 |

Chinaunix

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

求助perl6的正则 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-11-14 15:55 |只看该作者 |倒序浏览
本帖最后由 w123456_cu 于 2015-11-14 22:46 编辑

想把记录中的学校依次抠出来。具体来说,匹配每个 [ ] 后与第一个逗号,之间的内容。


希望输出:
  1. Sichuan Normal Univ, Guangdong Polytech Normal Univ, Tsinghua Univ, Zhejiang Wanli Univ
  2. Sichuan Normal Univ, Chongqing Univ
  3. Xiamen Univ, Xiamen Univ, Sichuan Normal Univ
  4. Sichuan Normal Univ
复制代码
  1. use v6;
  2.   for 'data.txt'.IO.lines -> $_ is copy {
  3.        .chomp;
  4.        $_ ~~ m:g/']'\s+(.*?)','/;   
  5.        say $/;
  6. }      
复制代码
我的不得行,请大家帮忙。

---data.txt---
1   [Lue, Fan] Sichuan Normal Univ, Dept Math, Chengdu 610066, Peoples R China; [Lou, Man-Li] Guangdong Polytech Normal Univ, Dept Math, Guangzhou 510665, Guangdong, Peoples R China; [Wen, Zhi-Ying] Tsinghua Univ, Dept Math, Beijing 100084, Peoples R China; [Xi, Li-Feng] Zhejiang Wanli Univ, Inst Math, Ningbo 315100, Zhejiang, Peoples R China
2  [Li, Yuhuan] Sichuan Normal Univ, Dept Math, Chengdu 610066, Peoples R China; [Lin, Ke; Mu, Chunlai] Chongqing Univ, Coll Math & Stat, Chongqing 401331, Peoples R China
3  [Wu, Jiangtao; Xu, Jun; Li, Nan; Jiang, Yaqi; Xie, Zhaoxiong] Xiamen Univ, State Key Lab Phys Chem Solid Surface, Coll Chem & Chem Engn, Xiamen 361005, Peoples R China; [Wu, Jiangtao; Xu, Jun; Li, Nan; Jiang, Yaqi; Xie, Zhaoxiong] Xiamen Univ, Dept Chem, Coll Chem & Chem Engn, Xiamen 361005, Peoples R China; [Wu, Jiangtao] Sichuan Normal Univ, Coll Chem & Mat Sci, Chengdu 610068, Peoples R China
4  [Wen, Rui; Zhou, Lin; Zou, Xiao; Luo, Lingling; Jiang, Na; Zheng, Qiaoji; Liao, Jie; Xu, Chenggang; Lin, Dunmin] Sichuan Normal Univ, Coll Chem & Mat Sci, Chengdu 610066, Peoples R China
5  [Tian, Mijie; Zhou, Lin; Zou, Xiao; Zheng, Qiaoji; Luo, Lingling; Jiang, Na; Lin, Dunmin] Sichuan Normal Univ, Coll Chem & Mat Sci, Chengdu 610066, Peoples R China

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
2 [报告]
发表于 2015-11-14 17:13 |只看该作者
回复 1# w123456_cu
我没有学习过 Perl 6, 对其正则表达式的语法也不理解.
您能否将其转换成 Perl 5 的正则. 谢谢.

   

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
3 [报告]
发表于 2015-11-14 17:18 |只看该作者
本帖最后由 sunzhiguolu 于 2015-11-14 17:21 编辑

回复 1# w123456_cu
以下我是猜的, 您可以试下:
$_ ~~ m:g/']'\s+(.*)','/;

[^,]+

   

论坛徽章:
1
操作系统版块每日发帖之星
日期:2016-06-12 06:20:00
4 [报告]
发表于 2015-11-16 19:08 |只看该作者
perl6是不是已经over了?

求职 : 软件工程师
论坛徽章:
3
程序设计版块每日发帖之星
日期:2015-10-07 06:20:00程序设计版块每日发帖之星
日期:2015-12-13 06:20:00程序设计版块每日发帖之星
日期:2016-05-05 06:20:00
5 [报告]
发表于 2015-11-16 23:48 |只看该作者
这种简单的匹配何须动用 Perl6:
  1. #!perl

  2. use 5.020;

  3. my $str = "[Lue, Fan] Sichuan Normal Univ, Dept Math,";
  4. if ($str =~ /\] ([^,]+)/) { say $1 }
复制代码

论坛徽章:
0
6 [报告]
发表于 2015-11-17 10:43 |只看该作者
  1. #!perl6

  2. for $=finish.lines {
  3.     # TRY THIS
  4.     # my @univ = .comb(/<after ']'\s*> \S .+? <before ','>/);
  5.     my @univ = .comb: /<after \]\s*> \S <-[,]>+/;
  6.     say join ', ', @univ;

  7.     # OR TRY THIS
  8.    
  9.     $_ ~~ m:g/ ']' \s* (.+?) ',' /;
  10.     say $/.map(*.[0]).join(', ');
  11. }


  12. =finish
  13. 1   [Lue, Fan] Sichuan Normal Univ, Dept Math, Chengdu 610066, Peoples R China; [Lou, Man-Li] Guangdong Polytech Normal Univ, Dept Math, Guangzhou 510665, Guangdong, Peoples R China; [Wen, Zhi-Ying] Tsinghua Univ, Dept Math, Beijing 100084, Peoples R China; [Xi, Li-Feng] Zhejiang Wanli Univ, Inst Math, Ningbo 315100, Zhejiang, Peoples R China
  14. 2  [Li, Yuhuan] Sichuan Normal Univ, Dept Math, Chengdu 610066, Peoples R China; [Lin, Ke; Mu, Chunlai] Chongqing Univ, Coll Math & Stat, Chongqing 401331, Peoples R China
  15. 3  [Wu, Jiangtao; Xu, Jun; Li, Nan; Jiang, Yaqi; Xie, Zhaoxiong] Xiamen Univ, State Key Lab Phys Chem Solid Surface, Coll Chem & Chem Engn, Xiamen 361005, Peoples R China; [Wu, Jiangtao; Xu, Jun; Li, Nan; Jiang, Yaqi; Xie, Zhaoxiong] Xiamen Univ, Dept Chem, Coll Chem & Chem Engn, Xiamen 361005, Peoples R China; [Wu, Jiangtao] Sichuan Normal Univ, Coll Chem & Mat Sci, Chengdu 610068, Peoples R China
  16. 4  [Wen, Rui; Zhou, Lin; Zou, Xiao; Luo, Lingling; Jiang, Na; Zheng, Qiaoji; Liao, Jie; Xu, Chenggang; Lin, Dunmin] Sichuan Normal Univ, Coll Chem & Mat Sci, Chengdu 610066, Peoples R China
  17. 5  [Tian, Mijie; Zhou, Lin; Zou, Xiao; Zheng, Qiaoji; Luo, Lingling; Jiang, Na; Lin, Dunmin] Sichuan Normal Univ, Coll Chem & Mat Sci, Chengdu 610066, Peoples R China
复制代码

论坛徽章:
0
7 [报告]
发表于 2015-11-17 16:40 |只看该作者
本帖最后由 w123456_cu 于 2015-11-18 10:56 编辑

@ba_du_co 谢谢。

论坛徽章:
0
8 [报告]
发表于 2015-11-18 09:53 |只看该作者
ba_du_co 发表于 2015-11-17 10:43



学习了。老师能加我QQ 38552109 吗? 有一项目邀请您有偿指导下

论坛徽章:
0
9 [报告]
发表于 2015-11-18 11:23 |只看该作者
回复 8# w123456_cu


    我沒有 QQ

论坛徽章:
0
10 [报告]
发表于 2015-11-18 11:31 |只看该作者
回复 9# ba_du_co
邮箱呢
38552109@qq.com

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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP