※ ChatGPTを利用し、要約された質問です(原文:正規表現による検索)
正規表現による文字列検索のプログラムがうまくいかない
このQ&Aのポイント
現在、正規表現による文字列検索のプログラムがうまくいかない状況です。
プログラムは指定されたログファイルを読み込み、特定の文字列が存在するかどうかを判定するものです。
しかし、現在は正しく判定が行われず、存在する文字列でも存在しないと判定されてしまっています。
正規表現によって文字列を検索し、該当する文字列が存在する場合には存在する旨のメッセージを出力し、存在しない場合には存在しない旨のメッセージを出力するようなプログラムを作りたいのですが現在うまくいっておりません。ソースは以下になります。
#!/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は含まれています。