OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

正規表現による検索

  • すぐに回答を!
  • 質問No.137105
  • 閲覧数196
  • ありがとう数0
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 68% (20/29)

正規表現によって文字列を検索し、該当する文字列が存在する場合には存在する旨のメッセージを出力し、存在しない場合には存在しない旨のメッセージを出力するようなプログラムを作りたいのですが現在うまくいっておりません。ソースは以下になります。

#!/usr/bin/perl

$logfile= './log_euc.log'; # ログファイル

@logs = &read_file($logfile);

foreach $log (@logs) {
if ($log = ~/hogehoge/ ){
$log_stg = " 変数に文字列hogehogeは含まれています。 ";
}else{
$log_stg = " 変数に文字列hogehogeは含まれていません。 ";
}

print " 判定結果\n ";
print " $log_stg\n ";
}

sub read_file {
local($logfile) = $_[0];
open(IN,$logfile);
local(@files) = <IN>;
close(IN);
return @files;
}

検索対象のファイル「log_euc.log」は以下です。

hogehoge
mugemuge
riri
ari
siri
siursoiu
sojowijugo
hfsoiehrohogehoge

sjhoisjofhoge osihojfhoge
hsoghsoehogehogesoijggggg

検索結果は以下です。

判定結果
変数に文字列hogehogeは含まれています。
判定結果
変数に文字列hogehogeは含まれています。
判定結果
変数に文字列hogehogeは含まれています。
判定結果
変数に文字列hogehogeは含まれています。
判定結果
変数に文字列hogehogeは含まれています。
判定結果
変数に文字列hogehogeは含まれています。
判定結果
変数に文字列hogehogeは含まれています。
判定結果
変数に文字列hogehogeは含まれています。
判定結果
変数に文字列hogehogeは含まれています。
判定結果
変数に文字列hogehogeは含まれています。
判定結果
変数に文字列hogehogeは含まれています。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル13

ベストアンサー率 37% (419/1115)

if ($log = ~/hogehoge/ )

のイコールとチルダの間に空白が入っているせいではないでしょうか。

正しくは

if ($log =~ /hogehoge/ )

のようにチルダをスラッシュ側ではなくイコール側に付ければOKだと思います。
-PR-
-PR-
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ