Perlから行末から特定の文字まで文字を削除する方法

Perlから行末から特定の文字まで文字を削除する方法

私の文字列は次のとおりです

$varin="wer.try.iuy.oiu.qert"

文字列の終わりから「.」まで文字を削除したいです。会う。

予想出力:

wer.try.iuy.oiu

これを試してみましたが、chop()何もsubstr 機能しません。最後の文字だけが削除されます。

助けてください:)

答え1

正規表現は、次の問題を解決するのに役立ちます。

$varin =~ s/\.[^.]+$//;

これは、ポイントと一致し、ポイントではなく複数が続き、文字列の終わりと一致します。その後、一致するコンテンツを削除してください。

もう1つの方法は、最後の.usingを見つけて、rindexuseを使用してsubstrドットとその後のすべてのエントリを削除することです。

my $i = rindex($varin,'.');
$varin = substr($varin,0,$i) if $i>0;

関連情報