+ -
当前位置:首页 → 问答吧 → [求助] 如何匹配获得如下的中英文字符串中的数字

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

时间:2010-10-12

来源:互联网

本帖最后由 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. 以后还要匹配日文字符串中的 数字, 希望能提供一个可以通吃的正则表达式,谢谢! (改成注释中的语句后,已经通吃了哈哈)

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

作者: brant_chen   发布时间: 2010-10-12

回复 brant_chen


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

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

o(╯□╰)o

再次抱歉~~~

作者: brant_chen   发布时间: 2010-10-12

回复 brant_chen


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

作者: 珞水的大叔   发布时间: 2010-10-12