我正在开发一个Perl脚本,我想在两个不同的变量之间拆分一个字符串。
这是我的字符串
<p>Hello my server number is 1221.899999 , please select an option</p>
我希望能够提取服务器编号,因此我想在<p>Hello my server number is
之后和以下空格之前拆分字符串,因此我的结束字符串将打印为
1221.899999
正则表达式是最好的解决方案,而不是使用 split?
我只会使用正则表达式。
my $str = 'Hello my server number is 1221.899999 , please select an option';
my ($num) = $str =~ /Hello my server number is (d+.d+) ,/;
如果匹配未成功,$num
将未定义。
怎么样:
$str = 'Hello my server number is 1221.899999 , please select an option';
$str =~ s/^.*b(d+.d+)b.*$/$1/;
say $str;
或
$str =~ s/^Hello my server number is (d+.d+)s.*$/$1/;
如果字符串的开头始终是该字符串。
输出:
1221.899999
我会使用正则表达式。这个怎么样:
$str = 'Hello my server number is 1221.899999 , please select an option';
print $1 if $str =~ /is (.*) ,/;
只要您确定逗号前总是有一个空格,正确的答案与此类似
my $string = '<p>Hello my server number is 1221.899999 , please select an option</p>';
my ($server) = $string =~ /server number is (S+)/;
print $server;
输出
1221.899999
如果逗号可以立即出现在服务器编号末尾之后,那么您需要稍微修改一下
my ($server) = $string =~ /server number is ([^s,]+)/;