|
ナナシサソさん、68userさん 出来ました!! ご指導どうもありがとうございました。 |
|
二日連続の質問になってしまいますが、よろしくお願いします。 No.2251のInput file名は"Ab00010", "Cd00020", のように文字と数字からなっているのですが、Outputは別のDirに"Ab00010" "Ab00011" "Cd00020" "Cd00021"というように、/-2/の部分は”元のファイル名+1”というファイル名にしたいのですが、、、、 800ページあるらくだの本も一応買ってきたのですが全然分からないので、ウェブサイトで調べてみたのですが、唯一これかな?と思ったのが: $string="abcd771gfds"; $string=~/(\W+)\s+(\d+)/; とすると、$1=abcd, $2=7771, $string=abcd771gfds になる、とあったんですが、 試してみると$1=" ", $2=" ", $string="4294967295"になってしまい、訳が分からなくなってきたのですが、これは全然違うアプローチなんでしょうか? どうしたら ”Ab00011”が作れるんでしょうか? |
|
$flag == 2 ? $string ++ : ; でいいと思う・・ゲロゲロ |
|
UNIXの歴史について、知ってる範囲で教えてください。 できれば、メールの方がありがたいです。 |
|
>>2257 ナナシサソ でもアルファベットと数字からなってるので、数字だと見てくれないみたいなんですけど、、、 |
|
>>2259 ミング Perlは妙なことが出来たり・・ 多分うまくいくと思うんだけどな・・ |
|
ミングさんはじめまして。 まず abcd771gfds の件です。 #!/usr/bin/perl $string = "abcd771gfds"; $string =~ /(\W+)\s+(\d+)/; print "1:<$1> 2:<$2> string:<$string>\n"; を動かすと 1:<> 2:<> string:<abcd771gfds> と出ました。 \W+ は、英数字(word)以外1文字以上なので、なくてあたりまえ。 \s+ は、空白文字(space)1文字以上なので、なくてあたりまえ。 \d+ は、数字(digit)1文字以上だが、前に \W も \s もないのでダメ。 もし、$1 に abcd、$2 に 771(7771 は間違い?)を入れようとするなら、 $string =~ /^([a-zA-Z])(\d+)/; とかでしょうか。 ^ は文字列の先頭を示します。 これをやらないとどこからサーチしはじめるかわからん。 [a-zA-Z] は英字。\d は数字。 (わー、目からウロコ。英字のカンタンな文字クラスってないんですね) #!/usr/local/bin/perl $string = "abcd771gfds"; $string =~ /^([a-zA-Z]+)(\d+)/; print "1:<$1> 2:<$2> string:<$string>\n"; を動かすと 1:<abcd> 2:<771> string:<abcd771gfds> となりました。 |