- 締切済み
ホスト情報から一部削除
初心者で分からないので教えてください。 例えば、wbcc17s10.ezweb.ne.jpという ホスト情報があったとします。 ホスト情報($host)を取得してから この情報の「ezweb」という文字列だけ取り出すようにするには どのように記述したらいいのか教えていただけませんか?
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- mikaemi
- ベストアンサー率50% (33/65)
あぁ、たしかにCPANなどにありそうですね。s-m25 さん、一度、検索してみればいかがですか?^^ 「ということで。」とか「ちと一般化。」とか、sakusaker7 さん、カックいい~(笑)
- sakusaker7
- ベストアンサー率62% (800/1280)
書いていて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)
@hosts = ( "hoghoge.docomo.ne.jp", "bcc17s10.ezweb.ne.jp", ); foreach $host (@hosts) { if ($host =~ /([^.]+)\.ne\.jp$/) { print "$1\n"; } } とかですか?^^
- danmarino
- ベストアンサー率63% (26/41)
“取り出す”というのが正確には何を意味しているかが定かではありませんが、「ホスト情報から一部削除」というタイトルから推察するに「wbcc17s10.ezweb.ne.jp」が「wbcc17s10..ne.jp」となればいいのでしょうか? だとしたら $host =~ s/ezweb//g; です。 ezwebが入っているかどうか判定する、というのなら if ($host =~ /ezweb/i) { 処理;} です。
お礼
書き方は悪かったようですみません。 その中でも2つ書いていただいて、嬉しく思いましたし、 またそのお気持ちに心から感謝いたします。 ホスト情報のezwebやdocomoという部分だけ取り出し、 ezwebという部分だけ投稿者情報として掲示したかったのです。 (ezwebか判定するのではなく・・・)