2009-04-28 97 views
0

我想用於與正則表達式檢測以下表達式正則表達式對集

串一些幫助「(X/X)」,其中x是任何數量的從0-999。 字符串「x的x」其中x是從0-999的任何數字。

通常,字符串是一組標記,即10個事物中的4個,或者(3/5),其中第一個數字是項目,第二個數字是總數。

由於

+1

什麼語言?或正則表達式的味道? – hometoast 2009-04-28 19:17:44

回答

1

如何的

「\ d {1,3}/\ d {1,3}」

「\ d {1,3} \ d {1,3}」

+0

看起來不錯。讓我在標記之前先給它一下。謝謝 – Jordan 2009-04-28 19:25:33

+1

這將匹配000等,這可能會或可能不會被接受。在Perl 5.8和5.10中,\ d將匹配不是[0-9]的東西(例如MONGOLIAN DIGIT 5 U + 1815) – 2009-04-28 19:35:50

1
\([0-9]+\/[0-9]+\) 

[0-9]+ of [0-9]+ 
1

請參閱How to match numbers between X and Y with regexp?

#!/usr/bin/perl 

use strict; 
use warnings; 

my $num_re = qr/[0-9]|[1-9][0-9]|[1-9][0-9]{2}/; 
for my $s qw(1/10 100/500 a/456) { 
    if (my ($x, $y) = $s =~ m{^($num_re)/($num_re)$}) { 
     print "x is $x and y is $y\n"; 
    } else { 
     print "$s does not match\n"; 
    } 
} 

或只是

^([0-9]|[1-9][0-9]|[1-9][0-9]{2})\/([0-9]|[1-9][0-9]|[1-9][0-9]{2})$ 

,如果你不介意違反DRY