我想用于与正则表达式检测以下表达式正则表达式对集
串一些帮助“(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