0

FQDNと単純なホスト名の両方である可能性のあるホスト名の抽出に失敗しました

たとえば、sedでは正常に機能します。

echo test_serv1.TEST-Site-1.test.com|sed 's/\..*//'
test_serv1
echo test_serv1|sed 's/\..*//'
test_serv1

しかし、Perlでは、FQDNが次の場合にのみ取得します。

my $t='test_serv1.TEST-Site-1.test.com';
my ($res) = $t=~ /^(.*?)\./;
print "$res\n";

test_serv1にさまざまな組み合わせを試しましたが、機能しません。なぜですか?

4

2 に答える 2

5

/^(.*?)\./一致しない理由は.、単純なホスト名に no がないためであり、一致することはありません。

以下は両方で機能します。

  • my ($res) = $t =~ /([^.])+/;

    .連続する非文字の最初の出現を抽出します

于 2011-12-18T17:43:39.173 に答える
4

perlにも同じ方法を使ってみませんか?

use strict;
use warnings;

my $t='test_serv1.TEST-Site-1.test.com';
$t =~ s/\..*//;
print "$t\n";
$t='test_serv1';
$t =~ s/\..*//;
print "$t\n";
于 2011-12-18T16:18:07.433 に答える