关于我的正则表达式,我有一个问题/疑问.代码部分如下:
use strict;
my @list = ("1", "2", "123");
&chk(@list);
sub chk {
my @num = split (" ", "@_");
foreach my $chk (@num) {
chomp $chk;
if ($chk =~ m/\d{1,2}?/) {
print "$chk\n";
}
}
}
Run Code Online (Sandbox Code Playgroud)
在\d{4}将打印什么.在\d{3}将只打印123.但是,如果我改变\d{1,2}?它将打印所有.根据我到目前为止所读到的所有资料,我认为这{1,2}意味着:一位数但不超过两位.所以它应该只打印,1并且2正确吗?提取仅包含一到两位数字的项目需要什么?谢谢你的帮助.
\ d {1,2}如果在提供的字符串中的任何位置找到1或2位数,则会成功.其他字符串内容不会导致匹配失败.如果只想在字符串恰好包含1或2位数时匹配,请执行以下操作:^\d{1,2}$
| 归档时间: |
|
| 查看次数: |
9051 次 |
| 最近记录: |