• 締切済み

ホスト情報から一部削除

初心者で分からないので教えてください。 例えば、wbcc17s10.ezweb.ne.jpという ホスト情報があったとします。 ホスト情報($host)を取得してから この情報の「ezweb」という文字列だけ取り出すようにするには どのように記述したらいいのか教えていただけませんか?

みんなの回答

  • mikaemi
  • ベストアンサー率50% (33/65)
回答No.4

あぁ、たしかにCPANなどにありそうですね。s-m25 さん、一度、検索してみればいかがですか?^^ 「ということで。」とか「ちと一般化。」とか、sakusaker7 さん、カックいい~(笑)

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.3

書いていてCPANモジュールのどれかでこの手の機能を持っているの ありそうだよなあと思いつつ、ちと一般化。 use strict; my @hosts = qw( ******.docomo.ne.jp ******.ezweb.ne.jp gmail.google.com ); my $tld_l2 = qr<(?: ne | or | go | ac )>x; my $tld = qr<[.] (?: $tld_l2 [.] jp | com )>x; foreach my $host (@hosts) { my ($domain) = $host =~ m/[^.]+ (?= $tld $)/gx; print $domain, "\n"; } 実行結果: docomo ezweb google

  • mikaemi
  • ベストアンサー率50% (33/65)
回答No.2

@hosts = ( "hoghoge.docomo.ne.jp", "bcc17s10.ezweb.ne.jp", ); foreach $host (@hosts) { if ($host =~ /([^.]+)\.ne\.jp$/) { print "$1\n"; } } とかですか?^^

  • danmarino
  • ベストアンサー率63% (26/41)
回答No.1

“取り出す”というのが正確には何を意味しているかが定かではありませんが、「ホスト情報から一部削除」というタイトルから推察するに「wbcc17s10.ezweb.ne.jp」が「wbcc17s10..ne.jp」となればいいのでしょうか? だとしたら $host =~ s/ezweb//g; です。 ezwebが入っているかどうか判定する、というのなら if ($host =~ /ezweb/i) { 処理;} です。

s-m25
質問者

お礼

書き方は悪かったようですみません。 その中でも2つ書いていただいて、嬉しく思いましたし、 またそのお気持ちに心から感謝いたします。 ホスト情報のezwebやdocomoという部分だけ取り出し、 ezwebという部分だけ投稿者情報として掲示したかったのです。 (ezwebか判定するのではなく・・・)

関連するQ&A

専門家に質問してみよう