-4

次のようなリストがあります。

自転車: 子供用  
289  
自転車: マウンテン バイク  
928  
自転車: ロードバイク  
870  
キャンプ&アウトドア用品  
761  
カヌー、カヤック、手漕ぎボート  
231  
登山用品  
120  
フリーウェイトとホームジム  
583  
GPS とロケーター  
104  
ゴルフ用品  
1,223  
その他のフィットネス機器  
668  

数字または空白の行をスキップする必要があるだけです

if (($line =~ /0..9/) || ($line eq "")){}  
else{  
4

4 に答える 4

1

あなたが書くなら

while (<>) {
  next unless /[^\d,\s]/;
    :
}

プログラムは、数字、コンマ、および空白のみを含むすべての行をスキップします。

このプログラムはアイデアを示しています

use strict;
use warnings

while (<DATA>) {
  next unless /[^\d,\s]/;
  print;
}

__DATA__
Bicycles: Childrens  
289  
Bicycles: Mountain Bikes  
928  
Bicycles: Road Bikes  
870  
Camping & Outdoors Equipment  
761  
Canoes, Kayaks, Row-Boats  
231  
Climbing Equipment  
120  
Freeweights and Home Gyms  
583  
GPS and Locators  
104  
Golf Equipment  
1,223  
Other Fitness Equipment  
668  

出力

Bicycles: Childrens  
Bicycles: Mountain Bikes  
Bicycles: Road Bikes  
Camping & Outdoors Equipment  
Canoes, Kayaks, Row-Boats  
Climbing Equipment  
Freeweights and Home Gyms  
GPS and Locators  
Golf Equipment  
Other Fitness Equipment  
于 2012-04-14T20:03:59.910 に答える
1
print $line if $line !~ /[0-9]/ and $line =~ /\S/;

perldoc perlre . もう少し力を入れればもっと学べます。

于 2012-04-14T16:17:32.217 に答える
0

次に if (!$line || $line != int($line));

1 つ目は空白値のチェックで、2 つ目はこの値が整数かどうかをチェックします。

于 2012-04-15T08:48:29.423 に答える
0
if ($line !~ /^[\d,]*[\n\r]*$/) {
  # do something
}   
else {
  # blank or "digits & comas" only line
}

「空白」とは、オプションの行末を持つ空の文字列を意味します(使用しない場合chomp

于 2012-04-14T20:32:18.980 に答える