
教えてください。
読み込んだファイル内にある空行・コメント行・処理行を一つのスクリプトで表示する書き方をおしえてください。
超初心者なので
今のところ、ファイルのオープンしかできていません。
#ファイルをオープンします
open(F,"upload.cgi")|| die "upload.cgiをオープンできません:$!\n";
#ファイルを読みます
while(<F>){
#内容を表示
print;
}
#ファイルを閉じます
close(F);
どこで、何の処理をしているかもコメントしていただけると助かります。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
yatokesaさんの書いてた," "を含むような一般的な文についてのコメント
の抜き出しは,ちょっと強引な書き方ですが,次のような正規表現でできないでしょうか?
/^([^\"\#]*\"[^\"]*\")*[^\"\#]*(\#.*)$/;
print "$+\n";
ちなみに,
$_ = "\"not comment # not comment\" not comment \"not comment\" # comment\"comment\"#comment";
$_と,これに対する上の正規表現で抜き出した$commentを表示させると,
入力
"not comment # not comment" not comment "not comment" # comment"comment"#comment
コメント
# comment"comment"#comment
となります.
yatokesaさんの書いて下さったのと組み合わせて使ってください.
正規表現の説明ですが...
[^\"\#]* : "と#以外の繰り返しにマッチ
\"[^\"]*\" : "で囲まれた領域にマッチ
([^\"\#]*\"[^\"]*\")*[^\"\#]* : "で囲まれた領域と,#を含まない文字列にマッチ
(\#.*)$ : コメントにマッチ. この前に上の正規表現が書いてあるので,この部分は"で囲まれてない#にマッチします. つまりコメントにマッチします.
$+は正規表現で最後にマッチした部分です.
厳密にチェックしてないので抜けがあるかもしれませんが,こんな感じでしょうか.
具体的に教えていただきありがとうございます。
まだ、記号を見慣れていないのと、置き換える処理がわからないので
難しいですが、がんばって習得していきます。
また、わからないところを質問すると思うので、その時は教えて下さい!
No.1
- 回答日時:
空行の判定は length($_) == 0 か $_ eq ''
コメント行は、処理行の後にあるコメントもカウントするとなると少し面倒です。" " (ダブルクォーテーション)や ' ' (シングルクォーテーション)や / / パターン内、@# とかの # はコメントではないのでそれを判定しなければなりません。(正規表現でできるのかな?)
単純にコメントしかない行を判定するのなら、 /^[\s\t]*#/ で判定できます。
それ以外は処理行と言うことですね。
あとは、if 分で判定して、それぞれをカウントアップすればOKですね。
空行は結構かんたんに検索できるのですね!
本当に初心者なので、まだちょっとわからないですが、なんとかがんばってみます。ありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- Perl Perlで特定文字列から特定文字列までを抜き出したい 4 2022/04/02 14:24
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- CGI CGIが読み書きするデータファイルのパーミッションはさくらのインターネットでは何にするべき? 1 2023/05/02 16:44
- システム 外付けHDDの初期化について 4 2023/03/05 20:00
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- その他(プログラミング・Web制作) Pythonで、データファイルと列名ファイルを1つのファイルにしたいです。 1 2023/07/27 20:29
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- システム 外付けHDDの初期化について 4 2023/03/05 21:19
- Excel(エクセル) エクセル、画像ファイル名の書かれたセル(複数個所)に画像を一括で表示させる方法 1 2023/04/19 00:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字列検索時違う文字でマッチ...
-
正規表現
-
マッチングの件です
-
金額にマッチする正規表現について
-
日本語環境下でのバックスラッ...
-
電話番号(市外局番)の正規表現
-
sedの正規表現でグループ化する...
-
逆スラッシュを使わずにメタ文...
-
CSVファイルの中で、「 , 」カ...
-
エクセルで数値を全角文字(カ...
-
マクロを使ってフォルダー内に...
-
CString型からdouble型への変換
-
EXCELからCSVにすると余計なカ...
-
C#で、テキストボックスの入力...
-
Excelについて質問です。 セル...
-
住宅にカナを入力する際に丁目...
-
CSVの定義
-
CString から LPCTSTRの型に変換
-
WORDで改ページすると時々グレ...
-
英数字のみ全角から半角に変換
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正規表現
-
perlで記号除去を行いたいので...
-
正規表現でパスワードのチェック
-
sedの正規表現でグループ化する...
-
条件にマッチした行数のカウント
-
正規表現で「高」という文字を...
-
リナックスの grepコマンド ...
-
金額にマッチする正規表現について
-
なんで真面目な出会いを求める...
-
正規表現で「円(価格)」文字列...
-
データの抽出について(VBA)
-
データベース検索フォーム作成
-
正規表現のパターンに変数を指...
-
記号とあらば、1文字でも全て...
-
ゲーム
-
マッチングアプリで一言メッセ...
-
全角文字を判断
-
メールアドレスかどうかの
-
正規表現を教えて下さい
-
c:¥gooは存在するの?
おすすめ情報