• ベストアンサー

xxxxxxx = "aaa bbb ccc"という文字列の""で囲まれた部分を処理したい

最終的にリストにしたいので、正規表現で""内を取り出した後に split /( | )/のような処理をすればいいのだと思うのですが、まず第一に""内の文字列を取り出せません。 はじめのxxxxxxxは決まった文字列ですので、これを変数にできれば早いんですがそういう処理はできないですよね? フォーマットは決まっているのですが、どうやって""内の文字列を取り出せばいいのでしょうか? @ARGV =~ s/\".*\"$/$1/; こういう処理ではうまくいきませんでした。 Perlを触るのが初めてなので、ネットで調べていますがさっぱりわからなくて途方に暮れています。 よろしくお願いします。

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

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

ん~, なんで @ARGV に対して =~ するかなぁ? 普通は $ARGV[0] =~ /"(.*)"$/; と $1 にとりだしたりするものですが. まあ, あたまに '$' つけて eval すれば変数になるけど, これは普通じゃないし.

noname#57433
質問者

お礼

すみません。 今までこういうのをやったことがない上に、見よう見まねなのでごめんなさい。 そんな悪い事してたんですね。 これで試してみます。

その他の回答 (1)

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

どうも最終的にやりたいことがよくわからないのだけど、こういうの? use strict; use warnings; my $str = 'xxxxxxx = "aaa bbb ccc"'; #← この文字列から my ($tmp) = $str =~ m/"([^"]+)"/; print "\$tmp = $tmp\n"; my @l = split q{ }, $tmp; #←このリストを得る print join("\n", @l), "\n"; 実行結果: $tmp = aaa bbb ccc aaa bbb ccc > はじめのxxxxxxxは決まった文字列ですので、これを変数にできれば これがよくわからない。

noname#57433
質問者

お礼

ありがとうございます。 こちらも参考にさせてもらいます。 最後のは xxxxxxx = "aaa bbb ccc"'; なので xxxxxxに$をつけたら変数になって = があるから "aaa bbb ccc"'を $xxxxxに入れられないかなと思って。 ちょっとバカな考え過ぎでしたか

関連するQ&A