免费注册 查看新帖 |

Chinaunix

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

[求助] 如何匹配获得如下的中英文字符串中的数字 [复制链接]

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

我有这样的字符串:

  1. my $chs = "正在停止   123 作业";
  2. my $eng = "Suspend 123 jobs";
  3. my $job;

  4. if ($eng  =~ m/(\d+)\s+\w+/) {   # 晕死,不好意思,这里应该是 if ($eng  =~ m/\s+(\d+)\s+/) {, 这样就可以了
  5.             $job = $1;
  6. }
  7. print "chs job:" . $job . "\n";

  8. if ($eng  =~ m/\s+(\d+)\s+\w+/) {
  9.             $job = $1;
  10. }
  11. print "eng job:" . $job . "\n";
复制代码
问题:

1. chs job 为什么老是打印出来是空的呢? (参加代码中的注释)
2. 对于英文字符串,为什么if ($eng  =~ m/\w+\s+(\d+)\s+\w+/) { 和 if ($eng  =~ m/\s+(\d+)\s+/) { 效果是一样的呢? (欢迎大家解答,谢谢,我会下来查下资料)
3. 以后还要匹配日文字符串中的 数字, 希望能提供一个可以通吃的正则表达式,谢谢! (改成注释中的语句后,已经通吃了哈哈)

请大虾指教,谢谢!(临时需要,所以就没有时间查资料了,问题太简单了无怪哈)

论坛徽章:
0
2 [报告]
发表于 2010-10-12 15:02 |只看该作者
回复 1# brant_chen


    不好意思,污染大家眼睛了,

我把中文的
if ($eng  =~ m/\s+(\d+)\s+\w+/) {
写成
if ($eng  =~ m/(\d+)\s+\w+/) {
了 !

o(╯□╰)o

再次抱歉~~~

论坛徽章:
0
3 [报告]
发表于 2010-10-12 15:15 |只看该作者
回复 2# brant_chen


    都搞定了?没问题了吧,呵呵
   自己发现问题,然后解决它是一件很开心的事情

论坛徽章:
0
4 [报告]
发表于 2010-10-13 16:49 |只看该作者
回复 3# 珞水的大叔


嗯哈 {:3_193:}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP