- ベストアンサー
xxxxxxx = "aaa bbb ccc"という文字列の""で囲まれた部分を処理したい
最終的にリストにしたいので、正規表現で""内を取り出した後に split /( | )/のような処理をすればいいのだと思うのですが、まず第一に""内の文字列を取り出せません。 はじめのxxxxxxxは決まった文字列ですので、これを変数にできれば早いんですがそういう処理はできないですよね? フォーマットは決まっているのですが、どうやって""内の文字列を取り出せばいいのでしょうか? @ARGV =~ s/\".*\"$/$1/; こういう処理ではうまくいきませんでした。 Perlを触るのが初めてなので、ネットで調べていますがさっぱりわからなくて途方に暮れています。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ん~, なんで @ARGV に対して =~ するかなぁ? 普通は $ARGV[0] =~ /"(.*)"$/; と $1 にとりだしたりするものですが. まあ, あたまに '$' つけて eval すれば変数になるけど, これは普通じゃないし.
その他の回答 (1)
- sakusaker7
- ベストアンサー率62% (800/1280)
どうも最終的にやりたいことがよくわからないのだけど、こういうの? 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は決まった文字列ですので、これを変数にできれば これがよくわからない。
お礼
ありがとうございます。 こちらも参考にさせてもらいます。 最後のは xxxxxxx = "aaa bbb ccc"'; なので xxxxxxに$をつけたら変数になって = があるから "aaa bbb ccc"'を $xxxxxに入れられないかなと思って。 ちょっとバカな考え過ぎでしたか
お礼
すみません。 今までこういうのをやったことがない上に、見よう見まねなのでごめんなさい。 そんな悪い事してたんですね。 これで試してみます。