- 1 名前:(・∀・)チンポー!! mailto:(・∀・)チンポー!! [04/06/02 11:39]
- perl書きなんだがさ、こうリクに答えてなんか作りたいんだ。
だからリクエストをくれ。
- 433 名前:デフォルトの名無しさん mailto:sage [2006/01/17(火) 02:50:39 ]
- >>423
while (<$fh>) { chomp; my($date, $mail) = split /,/; $mails{$mail} = $date; } 後は自分で何とかしろ。
- 434 名前:ゆみ [2006/01/17(火) 10:20:52 ]
- >>433さん 素敵です!
あまりハッシュって使ったこと無かったので・・・ 出来ました!!!有難う御座います!!!
- 435 名前:デフォルトの名無しさん mailto:sage [2006/01/25(水) 21:48:54 ]
- <2></2>を削除する正規表現教えて
(例) .....<1>.....<2>....</2>....<1>..... ↓ .....<1>.............<1>.....
- 436 名前:デフォルトの名無しさん [2006/01/25(水) 21:50:42 ]
- s/.....<1>.....<2>....</2>....<1>...../.....<1>.............<1>...../g
- 437 名前:デフォルトの名無しさん mailto:sage [2006/01/25(水) 21:51:45 ]
- >>435だけど
間違えた。 <2></2>を削除する正規表現教えて (例) .....<1>.....<2>....</2>....</1>..... ↓ .....<1>.............</1>.....
- 438 名前:デフォルトの名無しさん mailto:sage [2006/01/25(水) 23:08:10 ]
- 正規表現の基礎の基礎じゃないか
- 439 名前:マル mailto:sage [2006/01/26(木) 01:37:34 ]
- 掲示板スクリプトで、名前が「あ」か「い」か「う」の人以外は書き込みできない、
という風にする場合 if ($name !/あいう/) { &error("名前が間違っています",'NOLOCK'); } ではないですよね。 「あ」か「い」か「う」というのはどう書けばいいでしょうか。
- 440 名前:& ◆p8OCeNXbYU mailto:sage [2006/01/26(木) 01:43:21 ]
- すみません。実際には「あ」か「い」か「う」ではなく、
「一」か「二」か「三」か・・・「三十五」か「三十六」という風になります。 一〜三十六までの漢数字を入れなければ投稿できない、という風にしたいのです。 自動で貼られてしまう広告よけのためなのですが、 何卒よろしくお願い致します。
- 441 名前:マル [2006/01/26(木) 01:50:09 ]
- 440=439です。
- 442 名前:& ◆p8OCeNXbYU mailto:sage [2006/01/26(木) 02:34:09 ]
- すみません。できました。
|で区切ればorの意味になるようでした。 if ($name !~/一|二|三/) { &error("名前が間違っています",'NOLOCK'); } というような感じで動きました。失礼しました。
- 443 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 03:41:24 ]
- これも正規表現の基礎の基礎の基礎だよな・・
マジで・・
- 444 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 10:33:45 ]
- <2>.*?</2>
- 445 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 12:21:36 ]
- >>444
><2>.*?</2> ".*?"という文字列はGoogleで検索できないため、申し訳ありませんが、 意味を教えていただけますでしょうか? .*は文字の0個以上(.+は1個以上)にマッチだと思いますが、これに?が付いた .*?がいまいち、よく分かりません。
- 446 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 12:50:59 ]
- >>445
Perl はググる前に perldoc 。 www.kt.rim.or.jp/~kbk/perl5.005/perlre.html#Regular_Expressions
- 447 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 11:51:12 ]
- >>442
use encoding でエンコード指定しておいて $name !~ /[あいう]/ で判定する方がいいと思う。
- 448 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 11:54:17 ]
- >>445
最小マッチ デフォルトは最大でマッチする。 たとえば 'abcabcabcabc' という文字列に対して /a.*a/ は 'abcabcabca' の部分がマッチするが /a.*?a/ だと 'abca' がマッチする。
- 449 名前:sage mailto:sage [2006/01/27(金) 17:48:26 ]
- >>448, 446
ありがとうございます。 >最小マッチ Perl歴17年ですが、この正規表現は見落としていました。 わざわざ、(1)のような書き方をしてきましたが、 (1) <2>[^<]*</2> (2)の方が読みやすいですね? (2) <2>.*?</2> 勉強になりました。
- 450 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 17:53:34 ]
- はぁ、どうして下らない嘘をつくかな
- 451 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 17:54:23 ]
- >>449
詳説 正規表現 第2版まじおすすめ
- 452 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 19:28:06 ]
- Perl 歴 17 年で正規表現もまともに使えないなんて、そんなの「歴」のうちに入らんよ。
- 453 名前:449 mailto:sage [2006/01/27(金) 21:55:45 ]
- >>452
>Perl 歴 17 年で正規表現もまともに使えない 正規表現の基本が分かっていなかったので、人にPerlを教える のは無理でしょうが、研究機関の仕事を主にPerlでこなして きたことは嘘ではありません。どんな書き方でも、限られた 時間内にバグがないスクリプトが書ければ、仕事がこなせま す。 perlの良いところは、Larry Wallが言うように、>> 449 の (1)でも(2)でも、様々な方法で目的が達成できる点です。
- 454 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 22:01:37 ]
- なんつーか・・
一生VB・HSPやってるようなモンだな 進歩がなけりゃただの・・
- 455 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 22:12:42 ]
- 449 の2しか知らん
- 456 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 23:32:19 ]
- >>453
こなせてないじゃん。 >>435 程度のことも人に聞かないと出来ないんだろ?
- 457 名前:デフォルトの名無しさん mailto:sage [2006/01/28(土) 14:14:55 ]
- Perl って1987年12月生まれなんだな。18年前か
history.perl.org/PerlTimeline.html まあ17年前からPerl(というかUNIX)やってて正規表現知らないなんて ありえない
- 458 名前:デフォルトの名無しさん mailto:sage [2006/01/28(土) 15:43:49 ]
- 「Perlプログラマのレベル10」
ttp://d.hatena.ne.jp/naoya/20050809/ のレベル5に > 多くの人たちがこのレベルを超えないのは、たとえ非効率であっても、 > 再利用可能なコンポーネントの作成を除けば、ほどんど何でもできるからである。 とあるように、必要性を感じられなければそれ以上のものはなかなか知ることが出来ないんだろうね…人間ってのは。 この機会にPerl5の奥深さを学んでみたらどうだ?その霧の先には素晴らしい世界が広がっているぞ
- 459 名前:デフォルトの名無しさん mailto:sage [2006/01/28(土) 17:48:46 ]
- >>457
最短マッチが使えるようになったのはPerl5以降だよ。 それ以前に覚えた正規表現をそのまま使い続けていたんだろうね。
- 460 名前:デフォルトの名無しさん mailto:sage [2006/01/28(土) 18:00:14 ]
- ああ、最短マッチを知らなかったってことだったのか
斜め読みしてた
- 461 名前:デフォルトの名無しさん mailto:sage [2006/01/30(月) 15:42:23 ]
- >>449
くっ。負けた。俺、Perl歴16年。
- 462 名前:デフォルトの名無しさん [2006/01/31(火) 17:18:44 ]
- お願いします。
♂チームと♀チームが2つのコートで♂♀別総当り戦をしたく 両コート同時進行として ♂が4チーム・♀が2チームの場合・・・ 【Aコート】 【Bコート】 ♂1-♂2 ♂3-♂4 ♀1-♀2 ♂1-♂3 ♂2-♂4 ♀1-♀2 ↑の3回戦で総当りになる。 では♂が7チーム・♀が3チームってなったとき どう組み合わせればよいかみたいなのを計算させたいです。 できれば3連チャンとかで試合することにならないように・・・
- 463 名前:デフォルトの名無しさん mailto:sage [2006/01/31(火) 17:30:13 ]
- >>462
♀1-♀2 が2回あるのはただの総当りではないと思われるが どういう規則なのかね?
- 464 名前:デフォルトの名無しさん mailto:sage [2006/02/01(水) 11:03:17 ]
- >>463
スミマセン間違いです・・・。 ♂が4チーム・♀が2チームの場合・・・ 【Aコート】 【Bコート】 ♂1-♂2 ♂3-♂4 ♀1-♀2 ♂1-♂3 ♂2-♂4 -
- 465 名前:デフォルトの名無しさん mailto:sage [2006/02/05(日) 15:52:03 ]
- >>462
こうですか? わかりません。 use strict; use warnings; local($a,$b); my(@t,@p,@f,@ct,$w,$i,$j,$k); ($t[0],$p[0])=('',$f[0]='0'); $t[$_]='♂'.$_,$p[$_]=0,$f[$_]='011111111000',substr($f[$_],$_,1)='0' for (1..8); $t[$_]='♀'.($_-8),$p[$_]=0,$f[$_]='000000000111',substr($f[$_],$_,1)='0' for (9..11); @ct=('A:',' B:'); do { ++$_ for (@p); for (@ct) { $a=$b=$w=0; for $k (1..$#p) { $i=$j=0; ($i,$j) = ($p[$_]>$j && substr($f[$_],$k,1))?($_,$p[$_]):($i,$j) for ($k..$#f); ($a,$b,$w) = ($k,$i,$j<$p[$k] ? $j : $p[$k]) if $p[$k] && $j && ($w<$p[$k] || $w<$j); } print $_,$t[$a],'−',$t[$b]; $b=$p[$a]=$p[$b]=substr($f[$a],$b,1)=substr($f[$b],$a,1)=0; } print "\n"; $b+=/1/ for (@f); } while($b);
- 466 名前:デフォルトの名無しさん mailto:sage [2006/02/06(月) 13:29:43 ]
- >>462
CPAN には、順列、組み合わせを扱う Algorithm::Permute というモジュールがある。これが使えるんじゃないの? (オレは使ったことは無いけど)
- 467 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 10:27:13 ]
- 総当たりの全組合せを求めた後で、それの並べ方を考えればいいのでは
ないだろうか。同じチームがなるべく連続しないようにするなど。 そして最後にコート分けする。
- 468 名前:デフォルトの名無しさん [2006/02/11(土) 11:07:49 ]
- 直リンクが不可能なアップローダー cgi あったら便利だと思う
直リンクされたことによって消滅するアップローダは多いからな perl で書かれたものキボン
- 469 名前:デフォルトの名無しさん mailto:sage [2006/02/11(土) 13:48:02 ]
- マルチ
pc8.2ch.net/test/read.cgi/tech/1138519327/308
- 470 名前:デフォルトの名無しさん mailto:sage [2006/02/11(土) 13:49:32 ]
- >>468
ってかんなもんすでにあんだろが
- 471 名前:デフォルトの名無しさん [2006/02/12(日) 06:11:09 ]
- >>470
直リンクを不可能にするような状態のcgiアップローダのスクリプトって配布されてる? されていないんじゃ?
- 472 名前:デフォルトの名無しさん mailto:sage [2006/02/12(日) 11:00:38 ]
- REFERER が期待する値以外だったらリジェクトするだけじゃん
- 473 名前:デフォルトの名無しさん mailto:sage [2006/02/24(金) 06:43:47 ]
- /***:****/にソケット飛ばしてHTMLデータを引っ張ってくるにはどうしたらいいですか?
- 474 名前:デフォルトの名無しさん mailto:sage [2006/02/24(金) 08:44:13 ]
- >>473
ソケットは飛ばない。 perl -MLWP::Simple -e "get q|www.example.com/path/to/file.html|"
- 475 名前:デフォルトの名無しさん [2006/02/27(月) 01:08:32 ]
- ファイル内の *.gif を *.bmpへ変換するプログラム作ってもらえませんか?
正規表現だったらどうなるでしょうか?
- 476 名前:デフォルトの名無しさん [2006/02/27(月) 01:11:06 ]
- 拡張子だけ(名前の変更(M))だけ、できればよいので、、、。
変更しなければならないものが100近くあるので^^;助けてください
- 477 名前:デフォルトの名無しさん mailto:sage [2006/02/27(月) 01:21:50 ]
- >>475
そんな見当違いな質問をしてると perlのスクリプトを書いても「どうやって実行するんですか?」 とか聞かれそうだと思われて誰にも相手されないよ
- 478 名前:デフォルトの名無しさん mailto:sage [2006/02/27(月) 01:28:06 ]
- >>475
名前の変更(M)とか書いてる所を見るとWindowsだと思うが、 ファイル名をマジで変えるだけなら、DOS窓で C>CD 変えたいファイルがあるディレクトリ C>RENAME *.gif *.bmp でいいんじゃマイカ? UNIX系なら % cd 変えたいファイルがあるディレクトリ % mv *.gif *.bmp どちらにしろ同じか。 ※ データ形式は変わらないから開けなくてもしらん。
- 479 名前:デフォルトの名無しさん mailto:sage [2006/02/27(月) 01:48:34 ]
- >>478
> % mv *.gif *.bmp > % mv *.gif *.bmp > % mv *.gif *.bmp > % mv *.gif *.bmp > % mv *.gif *.bmp > % mv *.gif *.bmp
- 480 名前:デフォルトの名無しさん mailto:sage [2006/02/27(月) 03:01:53 ]
- >>478
それは Windows/DOS じゃないと使えない技だぞ。
- 481 名前:デフォルトの名無しさん mailto:sage [2006/02/27(月) 03:34:00 ]
- 「名前の変更(M)」って書いてるくらいだから
Windows前提で答えれば良いっしょ
- 482 名前:デフォルトの名無しさん mailto:sage [2006/02/27(月) 11:36:48 ]
- >>475はファイル名だけ変えたいんだね。
拡張子がbmpであるgifファイルを作りたいんだね。 いや、きっとそうなんだろうね。質問の内容からして そうだし、他の人もそう理解しているようだし。
- 483 名前:デフォルトの名無しさん mailto:sage [2006/02/27(月) 12:17:25 ]
- perl -pi -e "s/\.gif/\.bmp/g" <ファイル>
- 484 名前:デフォルトの名無しさん mailto:sage [2006/02/27(月) 15:27:57 ]
- >>478
有難うございました。WinとLinux(UNIX)では、コマンドが違うからsystem()関数を使っても 同じプログラムとはいかないわけでしたね。 それに、Perlを使わなくてもできるんですね。 Cで書かれたコマンドがすでにあるからこれを使わない手は無いですね。OSにです。
- 485 名前:デフォルトの名無しさん mailto:sage [2006/02/27(月) 15:30:28 ]
- 今だCでプログラム書いたり、Cで書かれたexeばかり使っているので、手持ちのperlスクリプトを増やしたかった訳でした。。
- 486 名前:デフォルトの名無しさん mailto:sage [2006/02/27(月) 15:31:53 ]
- いつもCで事足りてしまうみたいです。。有難うございました。
- 487 名前:デフォルトの名無しさん mailto:sage [2006/02/27(月) 15:34:07 ]
- UNIX(Linux)とWindowsのコマンドが違う以上、汎用的なものを作るのってなかなか難しいですね。。。。?
- 488 名前:デフォルトの名無しさん mailto:sage [2006/02/27(月) 15:35:30 ]
- 本当、Cプログラマで良かったとつくづく思います。。
- 489 名前:デフォルトの名無しさん mailto:sage [2006/02/27(月) 19:52:06 ]
- 日記はチラシの裏に
- 490 名前:デフォルトの名無しさん [2006/02/28(火) 00:02:26 ]
- リアルで会ったら頭蹴り飛ばしてやんのに
- 491 名前:デフォルトの名無しさん [2006/02/28(火) 00:24:24 ]
- >>490
乙w死ねw
- 492 名前:デフォルトの名無しさん [2006/02/28(火) 00:26:39 ]
- >>490
リアルで会ったら頭蹴り飛ばして殺してやるのにw
- 493 名前:490 [2006/02/28(火) 00:32:52 ]
-
人格異常者だと思われてるから、普段リアルで誰にも相手されないよ〜
- 494 名前:490 [2006/02/28(火) 00:37:48 ]
- 会社訪問した際、面接官に目が包丁のようだよと言われますた。
腹が立ったので、帰る際後ろから面接官の頭蹴り飛ばしてやりました。 電車に乗ると、たくさんのひとの頭を蹴り飛ばさなければならないので 怖くて乗れません。
- 495 名前:490 [2006/02/28(火) 00:39:55 ]
- 別にいつ死んでもいいので、PG組んでます。
- 496 名前:デフォルトの名無しさん mailto:sage [2006/02/28(火) 00:42:55 ]
- (;´д`)
- 497 名前:デフォルトの名無しさん mailto:sage [2006/02/28(火) 00:45:32 ]
- 世の中みんないい人ばかりじゃないしねぇ
- 498 名前:490 [2006/02/28(火) 00:46:15 ]
- ファイル内って書いてて答えがこれ?
C>RENAME *.gif *.bmp 死ね
- 499 名前:490 [2006/02/28(火) 00:53:16 ]
- 491-495
で、だれ?おまえら
- 500 名前:デフォルトの名無しさん mailto:sage [2006/02/28(火) 00:58:17 ]
- おれだよ、おれ
500
- 501 名前:デフォルトの名無しさん mailto:sage [2006/02/28(火) 01:00:00 ]
- とりあえずここには
>>478以外、まともな人間はいなさそうだw
- 502 名前:490 [2006/02/28(火) 01:01:11 ]
- これ書いてる奴が?
% mv *.gif *.bmp
- 503 名前:デフォルトの名無しさん mailto:sage [2006/02/28(火) 01:03:27 ]
- >>490
(;´д`) いや 話しかけてこないで。さよなら
- 504 名前:デフォルトの名無しさん [2006/02/28(火) 01:45:20 ]
- ローマ字で入力すれば、あらゆるその読みの文字にマッチするスクリプト
gyouで行やら業やらぎょうやらギョウやらgyouやら
- 505 名前:デフォルトの名無しさん [2006/02/28(火) 02:04:59 ]
- migemo
- 506 名前:デフォルトの名無しさん [2006/02/28(火) 17:45:14 ]
- だってあれ完璧じゃないんだもん
- 507 名前:デフォルトの名無しさん mailto:sage [2006/02/28(火) 18:53:11 ]
- >>506
migemo の「辞書」が完璧じゃないんだろ? 「辞書」をしっかり作れ。Perlでmigemoみたいなこと をやるにせよ、辞書が命だ。
- 508 名前:505 mailto:sage [2006/02/28(火) 23:27:34 ]
- おまえも>503おまえも>506
死ね
- 509 名前:デフォルトの名無しさん mailto:sage [2006/03/01(水) 17:08:44 ]
- >>508
うはwwwカッコヨスwwww 俺にも氏ねって言ってぇぇvvvvvv
- 510 名前:505 mailto:sage [2006/03/02(木) 04:09:38 ]
- >509
しねしねしねー♪从´∇`从
- 511 名前:デフォルトの名無しさん mailto:sage [2006/03/06(月) 21:20:04 ]
- カウンターで
0=あ 1=1 略 49=を 50=ん って感じに変換するにはどーすればいいんですか?
- 512 名前:デフォルトの名無しさん mailto:sage [2006/03/06(月) 21:24:12 ]
- 日本語でおk
- 513 名前:デフォルトの名無しさん mailto:sage [2006/03/06(月) 21:33:41 ]
- >>511
my %c = ( '0' => 'あ', '1' => '1', # 略 '49' => 'を', '50' => 'ん' ); などと作っておいて $c{$count} のような感じで対応する文字列を求める。
- 514 名前:デフォルトの名無しさん [2006/03/11(土) 00:49:18 ]
- >>1
楽天とかで任天堂DSを購入するスクリプト組んでくれよ。人力じゃ無理 買えないw
- 515 名前:デフォルトの名無しさん [2006/03/12(日) 16:39:03 ]
- 連投スクリプトください
- 516 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 16:52:43 ]
- #!perl
use LWP::Simple; while (1) { get 'pc8.2ch.net/test/bbs.cgi'; }
- 517 名前:デフォルトの名無しさん [2006/03/12(日) 16:53:39 ]
- 連投スクリプトください
- 518 名前:デフォルトの名無しさん [2006/03/12(日) 16:54:45 ]
- 連投規制、バーボンに引っ掛からない2ch投稿スクリプト希望
- 519 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 17:18:26 ]
- #!perl
use LWP::Simple; while (1) { get 'pc8.2ch.net/test/bbs.cgi'; sleep 30; }
- 520 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 17:40:11 ]
- 明らかに悪用する気満々だから嫌。
- 521 名前:デフォルトの名無しさん [2006/03/12(日) 17:47:13 ]
- スレを埋めるときに使うんです(><;)
- 522 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 18:49:39 ]
- スレ埋めは、自分でスクリプトを書ける者にのみ許される神聖なる儀式であルッ!!
- 523 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 18:51:08 ]
- 思いっきり悪用の気配やんか
- 524 名前:デフォルトの名無しさん mailto:sage [2006/03/15(水) 20:52:25 ]
- あんま調子にのんなよ
- 525 名前:デフォルトの名無しさん mailto:sage [2006/03/16(木) 23:41:18 ]
- テキスト処理でおうかがいします。
半角数字と全角数字が混在したテキストがありまして、 一桁のみの数字は全角、二桁以上の数字は半角に統一したいのです。 中身を見てみると、「33」とか「679」とかになっていて、 どういう入力をしたのか不思議でなりません。 何かよいお知恵はないでしょうか。 Perl 5.8.1、Mac OS XのTerminalで作業をしています。 入力ファイルのエンコードはUTF-16(中国語処理のため)、 use utf8;で処理しています。
- 526 名前:デフォルトの名無しさん mailto:sage [2006/03/16(木) 23:43:46 ]
- 適当に正規表現で変換してったらいいんじゃないの?
s/1/1/
- 527 名前:デフォルトの名無しさん mailto:sage [2006/03/17(金) 00:20:14 ]
- 全部半角にしてから全角に直すだな
- 528 名前:525 mailto:sage [2006/03/17(金) 23:51:02 ]
- >>526
>>527 こんな感じで書いてみました。 while(<>) { tr/[0-9]/[0-9]/; s/(¥D)1(¥D)/$11$2/g; (中略) s/(\D)9(\D)/$19$2/g; print; } ただ、これだと2回同じ処理をしないといけないですよね。 最初の処理でtr行、次の処理でs行になるんでしょうか。 これを効率よく1回の処理ですませたいのですが、いいやり方をご存知ないですか?
- 529 名前:ヽ(´ー`)ノ ◆.ogCuANUcE mailto:sage [2006/03/18(土) 00:13:06 ]
- use utf8;
use Unicode::Normalize; $str = NFKC($str); $str =~ s/(?<!\d)(\d)(?!\d)/(my $ret = $1) =~ tr[0-9][0-9]; $ret/ge; これでどうだろう。
- 530 名前:デフォルトの名無しさん mailto:sage [2006/03/18(土) 17:46:30 ]
- >>528
逆。数字をまず全部全角にして、 その後2文字以上連続する全角数字を半角にする。
- 531 名前:http://www.vector.co.jp/soft/win95/util/se072729.html mailto:http://msdn2.microsoft.com/ja-jp/library/h2k70f3s.aspx [2006/03/18(土) 21:12:31 ]
- TextSS のWindowsXP(Professional)64bit化おながいします
もしくは64bitにネイティブ対応したテキスト置換ソフトありますか? そういや64bitにネイティブ対応している2chブラウザてありましたっけ?
- 532 名前:デフォルトの名無しさん mailto:sage [2006/03/18(土) 21:35:05 ]
- テキスト置換で64bitに対応してると
なんかいいことあんの?
- 533 名前:デフォルトの名無しさん mailto:sage [2006/03/18(土) 22:40:20 ]
- >>531
マルチ + スレ違い乙
|

|