尝试使用perl查找字符串中第一个数字的索引
我试图找到一个0-9之间的数字第一次出现的索引 比如说:尝试使用perl查找字符串中第一个数字的索引,perl,Perl,我试图找到一个0-9之间的数字第一次出现的索引 比如说: $myString = "ABDFSASF9fjdkasljfdkl1" 我想找到9所在的位置 我试过这个: print index($myString,[0-9]); 以及: 使用正则表达式: 产出: 8 您甚至可以尝试以下perl代码: use strict; use warnings; my $String = "ABDFSASF9fjdkasljfdkl11"; if($String =~ /(\d)/) {
$myString = "ABDFSASF9fjdkasljfdkl1"
我想找到9所在的位置
我试过这个:
print index($myString,[0-9]);
以及:
使用正则表达式:
产出:
8
您甚至可以尝试以下perl代码:
use strict;
use warnings;
my $String = "ABDFSASF9fjdkasljfdkl11";
if($String =~ /(\d)/)
{
print "Prematch string of first number $1 is $`\n";
print "Index of first number $1 is " . length($`);
}
您可以尝试以下方法:
perl -e '$string="ABDFSASF9fjdkasljfdkl1";@array=split(//,$string);for $i (0..$#array) {if($array[$i]=~/\d/){print $i;last;}}'
谢谢我假设索引不起作用,因为我试图给它一个范围而不是一个substr?@ysth:/\d/a比/[0-9]/,因为它支持其他数字格式,比如阿拉伯数字(最初称为印度):٠、١、٢、٤、٦、٦、٧、٨和印度数字:० (0), १ (1), २ (2) 等。@AshrafBashir:no,/\d/这样做,/\d/a与/[0-9]/相同。是的,just/\d/支持其他数字;这就是问题所在。在大多数情况下,这不是大多数人想要或期望的。在处理支持其他数字的多种语言时,这是非常必要的,而这正是/\d/所做的
use strict;
use warnings;
my $String = "ABDFSASF9fjdkasljfdkl11";
if($String =~ /(\d)/)
{
print "Prematch string of first number $1 is $`\n";
print "Index of first number $1 is " . length($`);
}
perl -e '$string="ABDFSASF9fjdkasljfdkl1";@array=split(//,$string);for $i (0..$#array) {if($array[$i]=~/\d/){print $i;last;}}'