• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:配列を使っての文字列抽出について)

配列を使っての文字列抽出について

このQ&Aのポイント
  • コマンドラインから実行されたnetstat -rnf inetコマンドの結果に含まれるUHSの文字列を抽出するためのPerlスクリプトを作成していますが、うまく結果が得られません。
  • スクリプトの正規表現が間違っている可能性があります。具体的には、9行目の正規表現パターンが誤っている可能性があります。
  • 正しい正規表現パターンを使用して、目的の文字列を抽出する方法についてのアドバイスをお願いします。

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

  • ベストアンサー
  • qtea
  • ベストアンサー率77% (38/49)
回答No.1

>4: next if /\s/; この場合、空白か改行がふくんでいれば、nextします。 なので、次行以降は処理されません。 たぶん、 next if /^$/; でいけるのではないかと。 >9: @A=split(/\s/ + / UHS /,IN); これは、if文の書きかたからすると、 @A=split /\s+/; くらいで良いのではないでしょうか? (@A=split(/\s+/,$_);と同じ意味です) >10: print @B."\n"; @Bって…@Aの間違えですよね? print @A."\n"; かな。 ただ、「.」で連結してしまうと、@Aをスカラーで評価してしまうので、@Aの個数を表示することになってしまいます。 せめて、ピリオドではなく、カンマくらいにしときましょう。 たぶん意図するものは、 print $A[2]."\n"; なのではないかと。 他はたぶん、大丈夫そうな感じです。 個人的には、 >3: next if /Routing.*/; これは、 next if /^Routing.*/ か next if /^Routing/ と、行頭にマッチする、としたいですが…(他のとこもね)

aopoma
質問者

お礼

ご返答ありがとうございます。 遅くなってすみません。 正規表現をいろいろと変えていたら何とか出来ました。 このあたりはややこしいですね。 ありがとうございました。

関連するQ&A