我需要一个Perl正则表达式来从字符串中提取6到10位数字。该数字将始终跟随特定单词后跟空格(案例未知)。
例如,如果我要找的单词是'string':
some random text blah blah blahSTRING 1234567890some more random text
期望的输出:
1234567890
另一个例子:
yet more random textra ra rastring 654321hey hey my my
期望的输出:
654321
我想将结果加载到变量中。
答案 0 :(得分:1)
/string ([0-9]{6,10})/i
string
匹配 STRING 和字符串,因为表达式以i结尾(不区分大小写的匹配)
匹配空格
(
启动一个捕获组以捕获您想要获取的数字
[0-9]{6,10}
匹配6到10个地方的数字
答案 1 :(得分:0)
第1组应包含您的号码
/^.*string (\d+).*$/i
答案 2 :(得分:0)
谢谢大家,在所有回复和谷歌搜索之间我最终得到了
#!/usr/local/bin/perl -w
use strict;
my $string = 'sgtusadl;fdsas;adlhstring 12345678daf;slkdfja;dflk';
my ( $number ) = $string =~ m/string\s\d{6,10}/gi;
$number =~ s/[^0-9]//g;
print "number is $number\n";
exit 0;