我想用於與正則表達式檢測以下表達式正則表達式對集
串一些幫助「(X/X)」,其中x是任何數量的從0-999。 字符串「x的x」其中x是從0-999的任何數字。
通常,字符串是一組標記,即10個事物中的4個,或者(3/5),其中第一個數字是項目,第二個數字是總數。
由於
我想用於與正則表達式檢測以下表達式正則表達式對集
串一些幫助「(X/X)」,其中x是任何數量的從0-999。 字符串「x的x」其中x是從0-999的任何數字。
通常,字符串是一組標記,即10個事物中的4個,或者(3/5),其中第一個數字是項目,第二個數字是總數。
由於
如何的
「\ d {1,3}/\ d {1,3}」
和
「\ d {1,3} \ d {1,3}」
看起來不錯。讓我在標記之前先給它一下。謝謝 – Jordan 2009-04-28 19:25:33
這將匹配000等,這可能會或可能不會被接受。在Perl 5.8和5.10中,\ d將匹配不是[0-9]的東西(例如MONGOLIAN DIGIT 5 U + 1815) – 2009-04-28 19:35:50
\([0-9]+\/[0-9]+\)
和
[0-9]+ of [0-9]+
請參閱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。
什麼語言?或正則表達式的味道? – hometoast 2009-04-28 19:17:44