shigoto2017/07/13 01:29 編集んー難しいですね。 つまり今回の例では/test:(\S+)/の( )カッコの中のデータが変数へ代入されている という理解です。 この勉強をしていくキーワードは「パターンマッチング演算子」でいいのでしょうか。 なかなかわかりやすいサイトが無いですね。。
KojiDoi2017/07/13 02:27ネットの情報もいいですが、いい加減なことを書いてあったりもするのであまり頼りすぎるのもキケンです。私やester41さんが紹介しているperldoc以上に信頼できるサイトは中々無いと思います。 もともとこの演算子の挙動は複雑なので一発で頭に入らないのは仕方ないです。とにかく、リストコンテキストか否か、()を使っているか否か、gオプションを指定しているか否かなど、場合分けをしてそれぞれの返り値を確かめてみることです。
KojiDoi2017/07/12 03:52だとすると、上で改行で示されている部分には実際にはどのような文字が入るのですか? カンマですか、スペースですか? その区切り文字の前後にスペースが入ったりすることは許容されますか? その辺の条件はしっかり書いてもらわないと正確な回答はできませんよ。
shigoto2017/07/12 04:02有り難うございます。スペースが入っています。 aaa:11111 bbb:wwwww 11cc:fgfgfg test:333-gggg-222 ddd:cvcv1111 な感じです。
shigoto2017/07/12 05:13すみません、この式はなぜ test:333-gggg-222が代入されず333-gggg-222のみ抽出できるのか わかりません。ネットで検索してますが、よくわからず、勉強したいのでどこか載ってるサイトなどご存知ないでしょうか。
ester412017/07/13 01:57グループ化メタ文字()で括られた部分が出力される為です。 詳しくは、Perldocを参照ください。 http://perldoc.jp/docs/perl/5.10.0/perlretut.pod#Extracting32matches 正規表現がどう返すかを確認するサイトもご紹介します。 http://www.rexv.org/ "Perl PCRE"を選択すれば、Perlの正規表現チェッカーになります。
2017/07/13 01:29 編集
2017/07/13 02:21
2017/07/13 02:27
2017/07/13 04:13