トップページphp
1001コメント311KB

Perlコーディング初心者質問スレ Part 59

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/02/16(月) 11:42:29ID:gvPTpodw
Perlのコーディングで困ってる人のスレです。

【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。

1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。

最低でも1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。

お勧めサイトは >2 以降

前スレ http://pc11.2ch.net/test/read.cgi/php/1218030872/
0636nobodyさん2009/06/12(金) 11:19:41ID:???
出来ないだろうな
i領域書き換えないといけないわけだし
0637nobodyさん2009/06/12(金) 11:38:04ID:???
う、出来ませんか…。
タイムスタンプ変更ソフトだと一括変更が多くて、
拡張子で分けたり条件で時刻だけ変更したり出来ないので
Perlでやりたいと思ったのですが残念です。
0638nobodyさん2009/06/12(金) 11:43:59ID:???
じゃあ一時ファイル作成してリネームを繰り返すしか
0639nobodyさん2009/06/12(金) 13:20:19ID:???
OSがWindowsなら、こんなのがあるけどね。
http://search.cpan.org/~wyant/Win32API-File-Time-0.006/lib/Win32API/File/Time.pm
06406042009/06/12(金) 14:18:45ID:???
>>634
ごめんなさい。
>>605さんの発言を見て、
初めてunlink "./icon/" . $icon or die $!を試すことに気づきました。
それでやってみて初めてエラーログに表示されたので、
他の方のアドバイスもすべて見て参考にしつつ
自力でもなんとかしないと逆に失礼だと思って>>632のように書いたのです。

書き方等、不快にさせてしまって本当に申し訳ないです。ごめんなさい。
0641nobodyさん2009/06/12(金) 16:46:11ID:???
635です、すみませんOS書いていませんでした…。
Windowsなので、>>639さんのリンクで解決しました!
ありがとうございました。
0642nobodyさん2009/06/16(火) 12:04:02ID:???
始めまして。質問させて頂きます。
『2009.6.15.火』という文字列を
『2009/6/15-火』という状態に置き換えしたいです。
$hoge=~ s/./\//g で置き換え、
『2009/6/15/火』にしたあと一番最後の/を-に置き換えする事を考えていますが、
似たような処理が複数あるため、もっとシンプルに
『2009/6/15-火』に置き換えする方法をご教授頂ければ幸いです。
0643nobodyさん2009/06/16(火) 12:12:35ID:???
>>642
方法はそれでいいんじゃねーの? たくさんあるならサブルーチンで。
0644nobodyさん2009/06/16(火) 12:29:59ID:???
$hoge =~ s|『(\d+).(\d+).(\d+).(.{1})』|『$1/$2/$3-$4』|;

これでいいんじゃね

0645nobodyさん2009/06/16(火) 12:36:28ID:???
数字全角みたいよ。
0646nobodyさん2009/06/16(火) 12:42:00ID:???
s/./\//g and s/(.*)\//$1-/ または
s/.(.*?).(.*?)./\/$1\/$2-/
0647nobodyさん2009/06/16(火) 12:58:04ID:???
>>646
*じゃなくて、+にすべき
0648nobodyさん2009/06/16(火) 12:59:39ID:???
>>645
じゃあこれでいいや

$hoge =~ s|『(.+).(.+).(.+).(.{1})』|『$1/$2/$3-$4』|;

あと、なんでみんな無理して/使うんだろ
0649nobodyさん2009/06/16(火) 13:05:01ID:???
> .{1}
これが妙に気になる

あとエスケープが面倒なときは {}!|# 辺りを見かけることのほうが多いよ
0650nobodyさん2009/06/16(火) 13:14:08ID:???
初心者に示すときにわざわざ別のデリミタ使うほうが二度手間だろ
また聞き返されてそれの説明しなきゃいけないし
0651nobodyさん2009/06/16(火) 14:00:37ID:???
>>646
下の方法で対応できました。
どうもありがとうございました。
0652nobodyさん2009/06/16(火) 14:34:08ID:???
utf8かencodingを宣言しつつ、
$str =~ s{(\d\d\d\d).(\d\d?).(\d\d?).(.)}{$1/$2/$3-$4}g;

>>644>>648さんに近いな。
0653nobodyさん2009/06/16(火) 16:23:50ID:???
なんでわざわざ正規表現使うんだ?
$str = sprintf '%s/%s/%s-%s', split '.', $str;

これでいいだろ
汎用性も十分
06546522009/06/16(火) 17:17:40ID:???
>>653
文章中に複数埋め込まれることを想定してるから。
0655nobodyさん2009/06/16(火) 17:40:25ID:???
わざわざっつーか、正規表現使う方が簡単だろjk
0656nobodyさん2009/06/16(火) 17:49:48ID:???
正規表現読みにくい
0657nobodyさん2009/06/16(火) 17:51:54ID:???
>>656
最初だけ。
その最初を越えないと、ずっとだけど。
0658nobodyさん2009/06/16(火) 17:58:20ID:???
誰も読めないなんて言ってないぞ
特に今回なんかはセパレータが全角ピリオドだし見分けつかんよ
正規表現書くにしても二度手間とか思わず読みやすくして欲しい
0659nobodyさん2009/06/16(火) 19:40:53ID:???
2chの回答で、その水準を要求されても困るわけだが。
0660nobodyさん2009/06/16(火) 19:54:36ID:???
正規表現を使う時は、コメントをつけてるなあ。

処理の内容そのものを示すコメントって
あんまり良いコメントとは言えないのかもしれないけど。
0661nobodyさん2009/06/16(火) 20:19:22ID:???
では、今後よろしく >>660
06626602009/06/16(火) 23:17:31ID:???
>661
え? 何が?
0663nobodyさん2009/06/16(火) 23:19:47ID:???
正規表現は読みにくいものだ
人間を機械に近づける代わりにエッセンスで書ける
06646612009/06/16(火) 23:45:46ID:???
>>662
Perlコーディング初心者質問スレなので、
コメントの書かれた正規表現での回答。
0665nobodyさん2009/06/16(火) 23:53:35ID:???
>664
ぼく質問する側だもん
0666nobodyさん2009/06/17(水) 00:46:18ID:???
変数に入ったリファレンスが、配列のリファレンスか、
ハッシュのリファレンスかを知る上手い方法はありますでしょうか?

今考えているのはsprintfでリファレンスを書き出してみて
その文字列の中にHASH かARRAYのどちらがあるかでやろうかと考えています。
他におすすめの方法があればお願いします。
0667nobodyさん2009/06/17(水) 00:54:03ID:???
>>666
print ref $ref;
0668nobodyさん2009/06/17(水) 00:54:57ID:???
ref
06696662009/06/17(水) 01:08:36ID:???
>>667-668
ありがとうございます。
refの返り値がHASHかARRAYになってるんですね。。
リファレンスかどうかの真偽のみに使っていたので気がつきませんでした。
助かりました。
0670nobodyさん2009/06/17(水) 01:55:06ID:???
よくできてるなあ
0671nobodyさん2009/06/17(水) 18:23:12ID:???
質問です、よろしくお願いします。
読み込んだデータ($sample)が120行ほどあって、
各行の先頭全てに’1−1’という文字列を放り込みたいんですが
全くプログラムが書けません。
どうか、教えてください。

0672nobodyさん2009/06/17(水) 18:33:52ID:???
$sample=~ s/(.*\n)/1-1$1/g;
0673nobodyさん2009/06/17(水) 18:42:10ID:???
>>672
最終行に改行コードがないと最終行が痴漢されない
0674nobodyさん2009/06/17(水) 19:32:47ID:???
$sample =~ s/^/1-1/gm;
0675nobodyさん2009/06/17(水) 19:39:35ID:???
$sample=~ s/(.*\n)/1-1$1/g;
0676nobodyさん2009/06/17(水) 19:41:06ID:???
$sample =~ s{^}{1-1}xmsg;
06776712009/06/17(水) 19:54:39ID:???
>>672-676
みなさん、ありがとうございます。
ばっちりできました。
が、初心者なんで皆さんのプログラムで
なぜちゃんと走ったのかが理解できてないので
出直してきますorz
0678nobodyさん2009/06/18(木) 00:48:48ID:???
改行を含んだデータの取り扱いが弱いよな
0679nobodyさん2009/06/18(木) 15:26:50ID:???
@csv = (["am","a"],["au","a"]);
@list = map(split(//, $_[0]), @csv);

@csv のすべての要素の最初の要素(文字列"am","au")を文字に分解したいのですがうまくいきません。
解決方法を教えてください。お願いします。
0680nobodyさん2009/06/18(木) 15:52:03ID:???
>>679
$_[0]じゃ@_の0番目だよ。$_->[0]だろ。
0681nobodyさん2009/06/18(木) 18:06:39ID:???
こんにちわ。
データの中にある特定の文字を消したいんですが、うまくいかないです。
while(<IN1>){
chomp;
@data = split(/-/, $_); #これは無視して下さい
@data2 = join(' ', @data);
という手続きで読み込んだデータをタブでつないで格納しましたが
都合上、全ての行に
red apple
red fire
てな感じで、タブで区切られずひとくくりにされてしまう箇所があります。
この中の"red "だけを全ての行から取り除いて残りをそのまま出力したいんですが
可能ですか?
初心者ながら置換をしてみようと
$data2 =~ s/Level1 //g
print OUT1 "$data2\n";
というプログラムを書いてみましたが、printできねーと返されましたorz
よろしくお願いします。

06826812009/06/18(木) 18:12:27ID:???
すんません。
下から4行目は
Level1 とか意味わからんのじゃなくて'red 'ですorz
0683nobodyさん2009/06/18(木) 18:13:04ID:???
$data2 =~ s/Level1 //gに ; が無いからprintの行でエラーのお知らせなんじゃね?
06846812009/06/18(木) 18:29:39ID:???
>>683
ホンマや!
と思って、;付け足してやってみたところ
今度はこのマッチングの表現がおかしいみたいなこと言われました。。
どこが間違ってるんでしょうか??
0685nobodyさん2009/06/18(木) 18:32:38ID:???
>>683でないならもしや open してない or できてない or 書き込みモードでないのでは?
0686nobodyさん2009/06/18(木) 18:35:41ID:???
あーじゃあデリミタちゃんとエスケープしてないとか?
$str =~ s/ttp://www.*//;
みたいな感じに文字列に/使ってない?
0687nobodyさん2009/06/18(木) 18:36:25ID:???
ファイル名隠して、エラー内容晒せ。
該当行前後のソースも。
06886812009/06/18(木) 19:00:13ID:???
>>686
redを空白に置換しようとしてるんで、文字列に使っちゃってることになるんですかね??

>>687
Use of uninitialized value in substitution (s///) at data_split line 15, <IN1> line 5788.
Use of uninitialized value in concatenation (.) or string at data_split line 16, <IN1> line 5788.
この2種類がガーっと出てきます。
ちなみにline15が$data2 =~ s/red //g;
line16がprint OUT1 "$data2\n";
です


0689nobodyさん2009/06/18(木) 19:05:09ID:???
joinは配列を返さないぞ
0690nobodyさん2009/06/18(木) 19:08:52ID:???
>>688
そのエラーは$data2が未定義だと言っている。

681に書いてある付け加える前の元の部分には
@data2しか登場してないぞ。
0691nobodyさん2009/06/18(木) 19:27:00ID:???
>>688
redならそうはならないっす><
このエラー見る限り違う


つーかどういうフォーマットのデータをどういうフォーマットにしたいか教えてくれ
06926812009/06/18(木) 19:27:49ID:???
>>689
そうだったんですか。。完全にわかってなかったです。

>>690
689さんが言うてるようにjoinが配列を返さないから
未定義だったんすね。。。

となると、、、
この"red "だけを消すにはどんな手が有効ですかね??
0693nobodyさん2009/06/18(木) 19:39:03ID:???
$data2の内容がないよう

どこかで設定したはず?→設定したはずの場所を正しく書き直す

設定し忘れ?→設定すべき場所を考える

わからない→とりあえず寝ちゃおう
0694nobodyさん2009/06/18(木) 20:02:08ID:???
結果

strict

しておけ
0695nobodyさん2009/06/18(木) 20:45:32ID:???
つ use Any::Mouse;

ごめん言ってみただけ
06966812009/06/18(木) 20:59:17ID:???
元のデータが
1 1 2 red fire 1232 0 [n]
みたいなのがざっと200行近くあって
この'red fire'がタブで区切れない、ひとくくりのデータになっちゃってます。
この中の'red'だけを一気にそぎ落とそうとしてる・・・って感じです
どうしたら良いですか??
0697nobodyさん2009/06/18(木) 21:21:41ID:???
while(@data){
my @tmp = $_ =~ /[^\t\n]+/g;
print join "\t", map{$tmp[$_] unless $_ == 3}(1..8);
}
こんな感じ?テストはしてない
0698nobodyさん2009/06/18(木) 21:22:37ID:???
X }(1..8);
O }(0..7);
0699nobodyさん2009/06/18(木) 21:30:15ID:???
>>696
$data2 =~ s/\bred\t//g;
$data2 =~ s/^red\t|(?<=\t)red\t|\tred\z//g;
$data2 = join("\t", grep{$_ ne 'red'} split(/\t/, $data2));

お好きなのをどうぞ。
07006812009/06/18(木) 22:01:42ID:???
>>697-699
ありがとうございました。
せっかく教えてくれたのに申し訳ないですが、
やはり>>688と同じようなエラーが出てしまいました。
見つけれる限りの間違いは直してみたつもりなんですが。。。

0701 ◆TWARamEjuA 2009/06/18(木) 22:32:31ID:????BRZ(10072)
while以前の行に変なのがあるんじゃないかな?

while行から上に向かって
exit;
を入れてみてデバグしてみるとか。

あと~の文字コードとかとか。
07026812009/06/18(木) 23:16:28ID:???
>>701
>>699さんの教えてくれた
$data2 =~ s/\bred\t//g;
が僕自身も一番わかりやすかったので使わせてもらってるんですが
エラーはこの文に対してだけ出てまして、その内容が
Use of uninitialized value in substitution (s///) at data_split line 13, <IN1> line 5788.
Use of uninitialized value in concatenation (.) or string at data_split line 15, <IN1> line 5788.
てな感じになってるんです。
ちなみに、line15は
print OUT1 "$data\n";
です。
文字コードも大丈夫なはずなんですが、、、
0703nobodyさん2009/06/19(金) 00:34:12ID:???
$data2に中身がねえと言われてるのに分からん奴だな。
スクリプト全部晒せばいいのに。
0704nobodyさん2009/06/19(金) 00:36:23ID:???
IN1 なファイルの line 5788 が空行でした、とかいう話ではないの?
0705nobodyさん2009/06/19(金) 04:46:39ID:???
>>703
まあそんな威張るな
0706nobodyさん2009/06/19(金) 09:11:31ID:???
@data2に何を入れても$data2とは関係ないってわかってる?
0707nobodyさん2009/06/19(金) 11:07:46ID:???
というか、このままじゃ$data2が何処から来たのか誰にも分からん。
0708nobodyさん2009/06/19(金) 14:19:21ID:???
>>703
威張ってはいない。
しょせんは他人事だがそれでも、いつまでも問題が解決しないことに
焦りと苛立ちと好奇心を感じている。
0709nobodyさん2009/06/19(金) 14:48:13ID:???
== と eq について質問があります
今、会員限定のサイトに電話番号 (ハイフン無し) によるログインをさせています。
家電話が無い人は携帯番号というふうにさせています。
認証自体は Basic 認証を使い、サイトの中で 「○○さん、こんにちわ」 といった具合で名前を表示させています。
(パスワードファイルは Shift_JIS、HTML は euc-jp です)
my $username; my $userid; my $usertel; my $userktai;
open(INFH, '<', $config->{'file_passwd'});
while(my $line = <INFH>){
  my $utf8 = decode('shiftjis', $line);
  my $eucjp = encode('euc-jp', $utf8);
  chomp $line;
  ($userid, $username, undef, $usertel, $userktai) = split(/\t/, $eucjp);
  $usertel = $userktai if !$usertel; # 家電話が無ければ携帯番号がユーザー名
  last if $ENV{'REMOTE_USER'} eq $usertel;
}
close(INFH);

上記でスクリプトを書くと、家の電話番号がある人はちゃんと名前が表示されますが、携帯しか無い人を $usertel に代入させると判定できません。
ユーザー名がパスワード一覧のファイルに記述されているのは確認しています。

last if $ENV{'REMOTE_USER'} eq $usertel;
の行を
last if $ENV{'REMOTE_USER'} == $usertel;
にすると判定は上手くいき、理想どおりの動作はします。

しかしパスワードが 「数値」 というのになんか気持ち悪い感じがしますし、なぜ eq で判別できなくて == で判別できるのでしょうか?
書き方が悪いというのがあれば指摘していただきたく書き込みしました。

print によるデバッグでパスワードを出力させてみたところ、$ENV{'REMOTE_USER'} と $usertel が一致する行を目視で確認しました。
0710nobodyさん2009/06/19(金) 15:03:10ID:???
$usertel = $userktai if !$usertel; の行で$userktaiを代入してるけどこの変数には
末尾に改行がある

きみは目視で改行が見えるか?
0711nobodyさん2009/06/19(金) 15:17:48ID:???
chomp $line;の位置が問題ってことだね
0712nobodyさん2009/06/19(金) 15:21:58ID:???
改行は見えるようにしとかないと。
0713nobodyさん2009/06/19(金) 15:44:33ID:???
あ〜、あまりにもくだらないミスでごめんなさい orz

ありがとうございました m(._.)m
0714nobodyさん2009/06/19(金) 16:29:20ID:???
今、データの正誤判定のための模範解答作成みたいなのやってます。
読み込むデータには
"animal"と"plant"と"food"の3種類がランダムに並んでます。
「animal
 plant
 food
 food
 animal」
というようなのが5000個近く並んでいます。
ここから、animalについては"n"、
他の2つについては"m"という文字を出力を出したいんですが、
perlを最近始めたばかりなので、全然できません。
助けてください。

のせるのも恥ずかしいぐらいですが、
とりあえず、稚拙ながらも作ったプログラムを置いておきます。
while($line = <IN1>){
chomp;
if($_ eq "animal"){
print OUT1 "n\n"
} else {
print OUT1 "m\n"
}
}
0715nobodyさん2009/06/19(金) 16:41:44ID:???
(´・ω・)つ ;
0716nobodyさん2009/06/19(金) 16:43:49ID:???
なんで$lineに読み込んでるのに$_を比較してんのよw
0717nobodyさん2009/06/19(金) 16:45:21ID:???
while (<IN1>) {
にしてみたらどう?
IN1 とか OUT1 を見て思うんだけど>>681>>702に心当たりはないか?
0718nobodyさん2009/06/19(金) 16:53:48ID:???
>>715
いっけね。これだから初心者わw

>>716
いろんなことやってたらごっちゃになっちゃって
直すの忘れてました。
$lineに直してもムリポでした、、、

>>717
うまくいきませんでした。
て言うてもエラーではなく、出力は最初のデータがfoodなのにも関わらず"m"と出て糸冬了。
心当たり?はわかんないす。

0719nobodyさん2009/06/19(金) 17:12:43ID:???
>>718
food なら m であってるんじゃないの?
それだけで終了するのはなぜかわからないけど。

修正後のスクリプトを見てみたい。
0720nobodyさん2009/06/19(金) 17:16:51ID:???
>>718

> $lineに直してもムリポでした、、、

おおかたchompを直し忘れたんじゃないか。
$lineで統一するんなら明示的に引数書かないと。

> て言うてもエラーではなく、出力は最初のデータがfoodなのにも関わらず"m"と出て糸冬了。
> 心当たり?はわかんないす。

animalのときn,他のときはmだからfoodでmがでて
終了なら正しい動作なんじゃねーの?
07217132009/06/19(金) 17:17:06ID:???
use strict;

while(my $line = <DATA>){
  chomp $line;
  if($line eq "animal"){
    print "n\n";
  }else{
    print "m\n";
  }
}
exit;

__DATA__
animal
plant
food
food
animal

原因は、$line に入れてるのに、chomp は $_ 対して行ってるから。

自分と似たようなミスですねww
07227142009/06/19(金) 17:26:50ID:???
すんません、僕の説明がヘタくそすぎたし、
>>718での報告は完全に間違ってたので、もう一度チャンスをください。
望ましい出力が
animalからのn と
plant, foodからのmです。
>>721さんのやつでやってみると
5000行ほどあるうちの最初がanimalなのにnが出てきまして、
その1つで出力が終わってしまってます。
ご教授、よろしくお願いします。

>>719
>>721さんのをまんま使わせてもらったところ
上に書いたような出力になっちゃいました。

07237142009/06/19(金) 17:28:42ID:???
あーもう、また間違ってる!
foodlなのにnが出ちゃったんですw
ほんますいません。
07247132009/06/19(金) 17:35:12ID:???
__DATA__ は削除しないと・・・


while(my $line = <IN1>){
chomp $line;
if($line eq "animal"){
print OUT1 "n\n";
}else{
print OUT1 "m\n";
}
}
0725nobodyさん2009/06/19(金) 17:36:48ID:???
落ち着けよ
原因はきっとキミがパニクってるからだと思う
07267192009/06/19(金) 17:44:12ID:???
>>722
スクリプトを見せてくれよ。
07277142009/06/19(金) 17:46:28ID:???
>>724
あ、大丈夫です。そこは消したんですが
>>722みたいな感じになっちゃったんです・・

>>725
確かにw
今日中にこれを何とか片付けないとだめなんで若干の焦りがありますよねw
0728nobodyさん2009/06/19(金) 17:54:53ID:???
目茶目茶短いだろうに載せないのはネタだから?
07297142009/06/19(金) 17:56:40ID:???
>>726
while($line = <IN1>){
chomp $line;
if($line eq "animal"){
print OUT1 "n\n";
}else{
print OUT1 "m\n";
}
}
て感じです。
出力は、nが1つ出ているだけです。
しかも、データの1行目はfoodなのでmが出てほしいんですが。。
0730nobodyさん2009/06/19(金) 18:02:04ID:???
ホントにfoodでmが出てるか↓こう書いて確認したら?
print OUT1 "n: $line\n";
print OUT1 "m: $line\n";
0731nobodyさん2009/06/19(金) 18:03:50ID:???
>>729
とりあえず、chompを外して
条件を
$line =~ /animal/
に変えて試してみれば?

あと、chompの後でも前でもいいけど、$lineをダンプ
07327192009/06/19(金) 18:06:13ID:???
>>729 その前後に問題があるのでは?
ファイルの open, close がうまくいってないとか?

# test.pl
use strict;
open IN1, '<', 'data_in.txt' or die $!;
open OUT1, '>', 'data_out.txt' or die $!;
while(my $line = <IN1>){
chomp $line;
if($line eq "animal"){
print OUT1 "n\n";
}else{
print OUT1 "m\n";
}
}
close OUT1;
close IN1;

# data_in.txt
food
animal
plant
food
animal

#data_out.txt
m
n
m
m
n
0733nobodyさん2009/06/19(金) 18:13:59ID:???
ほんとに
animal
なのか?
animal
とかじゃないよね?
0734nobodyさん2009/06/19(金) 18:16:17ID:???
>>721ので上手くいくんだから、もうデータが間違えてるだとか
その前後が間違えてるとしか思えない

スクリプトデータを頂戴
記述間違いから何から何まで直してやる
0735nobodyさん2009/06/19(金) 18:28:26ID:???
use strict;
use warnings;

open IN1, '<', 'testdata.txt';
open OUT1, '>', 'results.txt';
while(my $line = <IN1>){
  chomp $line;
  if($line eq "animal"){
    print OUT1 "n\n";
  }else{
    print OUT1 "m\n";
  }
}
close OUT1;
close IN1;

5000個のデータ作ってやってみたけど、ちゃんと動くし、簡単なチェックスクリプトで確認したけど、
animal なのに m になってしまうなんてのは無かった。
キミの組み方の問題かと思われ。
07367142009/06/19(金) 18:30:29ID:???
>>733
はい、一番処理しないといけないデータはanimalとかじゃなくて別の言葉です。
このanimalとかは、練習用で使ってたデータです。
下に生のデータを掲載させてもらいます。

>>734
スクリプトデータって読み込んだデータのことですよね?
animalとかじゃなくて、実際に処理したいデータはこんなのです。
NonWord
NonWord
NonScriptWord
NonScriptWord
NonWord
NonWord
NonWord
NonWord
ScriptA
ScriptC

こんなのが5000ほどあります。
この中のNonWordについてのみ"n"と返してほしいんです。
書いたプログラムは>>729から進歩してません。
■ このスレッドは過去ログ倉庫に格納されています