• ベストアンサー

文字列から配列作成

お世話になっております。 〔abc〕あいうえお<BR>〔def〕かきくけこ<BR>・・・ という構成になっている $M から @A = qw(abc def ・・・); @B = qw(あいうえお かきくけこ ・・・); という配列を取り出したいのですが、どのような方法がありますでしょうか。 御教示宜しくお願い致します。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

$_="〔abc〕あいうえお<BR>〔def〕かきくけこ<BR>"; @A=/〔(.+?)〕/g; @B=/〕(.+?)</g;

pantonenezu
質問者

お礼

ありがとうございます。 参考になりました。

その他の回答 (2)

  • moon_piyo
  • ベストアンサー率60% (88/146)
回答No.2

こんちはっ $M = "〔abc〕あいうえお<BR>〔def〕かきくけこ<BR>"; @A = @B = (); while ($M =~ /〔(.*?)〕(.*?)<BR>/g) { push(@A, $1); push(@B, $2); }

pantonenezu
質問者

お礼

ありがとうございます。 参考になりました。

  • dahho
  • ベストアンサー率44% (68/153)
回答No.1

〔abc〕あいうえお<BR> の繰り返しなら @x = split(/<BR>/, $M); #<BR>でsplitして foreach $i (@M) { /([a..z]+)(.+)/;  #マッチで記憶して push(@A, $1); push(@B, $2); } というのはどうでしょう? 上のは文法的に間違ったりしてるかもしれません。アイデアだけです。

pantonenezu
質問者

お礼

ありがとうございます。 参考になりました。

関連するQ&A