- ベストアンサー
正規表現でのマッチング
連想配列%hushがあります。 %hushの中のキーが「a何とか」、つまり a0、a1、a2、a3、・・・ の値だけを、配列@arrayに格納します。 つまり $array[0]=$hush{'a0'} $array[1]=$hush{'a1'} $array[2]=$hush{'a2'} $array[3]=$hush{'a3'} ・・・ といった感じにしたいのですが、 「a何とか」は正規表現を用いて a.* と表現できます。 ってここまでは手元の本で分かったのですが、マッチングのif文をどう書けばいいんだよ! if($key==a.*) と書いてもうまくマッチしてくれないんで、a.*を""で括ってみたり()で括ってみたりするものの相手にされず・・・ 手元の本は「こういう場合正規表現ではこう書けば良くて、これをマッチングさせれば良い」みたいなことを書いていますが、マッチングのさせ方は書いていません。 プログラムの文法書を読むと、条件分岐の仕方は書いていますが、==演算子の右側が正規表現だった場合の使い方は書いていません。 あるいは、正規表現の場合のマッチングはif文などを用いないのでしょうか? だったら正規表現の本にマッチングの文法を書いていますよね!? なんだかんだでマッチングがうまくいかないのです。 この場合、どう記述すればいいのでしょうか? お手数をお掛けします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
たとえば、Perlだと、 $key =~ /^a/ とかきますし、 Powershellだと、$key -match '^a' と書きます。 (a.*が「aから始まる文字列」ということを望んでいるのでしたらですが) 正規表現は一般的な概念です。文字の連なりの規則を記述するためのものです。 実際にそれをどうプログラムすればよいかは、お使いのプログラミング言語及び言語処理系によって変わってきます。 なので、 (1)正規表現について理解する。 (2)プログラミング言語及び言語処理系について理解する。 ――の二つの勉強が必要になります。 自分が使ったことのある正規表現が利用可能なプログラミング言語でマッチング方法を説明していないものは見たことがないので、まずは言語リファレンス等をもう一度読み直してみては。
お礼
言語はPerlです。Perlの板に書き込むはずが間違えてこちらに来てしまいました。Perlの板のつもりだったので、言語を指定しませんでした。失礼しました。 ありがとうございます。