是否为perl。
例如,如果我有"hello.world"
且指定的字符为'.'
,那么我想要的结果是"hello"
。
答案 0 :(得分:25)
请参阅perldoc -f index
:
$x = "hello.world";
$y = substr($x, 0, index($x, '.'));
答案 1 :(得分:6)
使用substr
:
my $string = "hello.world";
my $substring = substr($string, 0, index($string, "."));
或者使用regexp:
my ($substring2) = $string =~ /(.*)?\./;
答案 2 :(得分:1)
use strict;
use warnings;
my $string = "hello.world";
my $dot = index($string, '.');
my $word = substr($string, 0, $dot);
print "$word\n";
为您提供hello
答案 3 :(得分:1)
另一种可能性:
my $string = 'hello.world';
print ((split /\./, $string)[0], "\n");
答案 4 :(得分:1)
本着TIMTOWTDI的精神,并引入新功能:使用non-destructive option /r
my $partial = $string =~ s/\..*//sr;
贪婪的.*
结束将在第一个句点之后删除所有内容,包括可能的换行符(/s
选项),但保持原始字符串完整,并删除需要parens强加列表上下文( /r
选项)。
引自perlop:
如果使用/ r(非破坏性)选项,则运行 替换字符串的副本而不是返回 替换次数,无论是否返回副本 发生了替代。当/ r是时,原始字符串永远不会改变 用过的。即使输入是一个字符串,副本也将始终是一个纯字符串 对象或绑定变量。