我正试着从一个字符串中得到号码。数字可以是纯数字,例如12334,也可以用下划线12_345分隔
我试着使用下面的代码,但无法从中得到任何信息。
my $string = "this is a 141_153_923 number : $_123_456";
if ($string =~ /\b\d*(?:\d+\_?\d+)*\d*\b/) {
print "$&\n";
}预期输出为141_153_923
我也尝试过使用字符串141_153_923,它仍然没有返回任何内容,即使是在
$string =~ /\b\d\b/ 关于字符串141_153_923
发布于 2014-04-04 12:44:33
我希望变量$_123_456在您的Perl代码中声明。否则你会收到警告的。
现在是审判官。试着用这个:
if ($string =~ /\b(\d+(?:_\d+)*)\b/) {发布于 2014-04-04 12:49:54
试试这个regex:/((?:\d+\_?)+)/。
...
my $string = "this is a 141_153_923 number : \$_123_456";
my $num;
if (($num) = $string =~ /((?:\d+\_?)+)/) {
print "first: $num\n";
}
$string = "this is a 141153923 number : \$_123_456";
if (($num) = $string =~ /((?:\d+\_?)+)/) {
print "second: $num\n";
}
...产出:
first: 141_153_923
second: 141153923https://stackoverflow.com/questions/22863109
复制相似问题