Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试使用perl查找字符串中第一个数字的索引_Perl - Fatal编程技术网

尝试使用perl查找字符串中第一个数字的索引

尝试使用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)/) {

我试图找到一个0-9之间的数字第一次出现的索引

比如说:

 $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;}}'