Perl正则表达式从字符串中提取数字组
首先,我正在使用Perl 5.14.1。
我一直在解决以下问题(注意:我绝对吮吸任何与正则表达式有关的事情)。 我正在寻找一个正则表达式来只提取字符串中的数字,如下所示:
E4.1
E6
e16
e6.7.3
E42.9
基本上,总是有一个e(大写或小写),后面跟着至少一组数字。 如果有多组数字,则用点分隔。 我想要做的是将所有数字组提取到一个数组中。 例如:
E4.1 -> ( 4, 1 )
E65 -> ( 65 )
e5.8.3 -> ( 5, 8, 3 )
圆括号中的内容应该是从字符串中提取的数字数组。
我到目前为止是
my @groupsOfNumbers = ( $inputString =~ /(d+)((.)d+)*/g );
我的理由是,总是至少有一组数字(因此第一个( d +) ),可选地跟随任意数量的点后接数字分组(因此((。) d +)*部分) 。 不幸的是,这似乎并不奏效。 例如,如果我将该正则表达式应用于此输入:
E4.3.1
结果是:
(“4”,“.1”,“。”)
请帮忙!
你不必打扰点匹配,因为你只需要数字,
my @groupsOfNumbers = $inputString =~ /(d+)/g;
链接地址: http://www.djcxy.com/p/87015.html
上一篇: Perl regex to extract groups of digits from string of dot