Perl初心者スレ(マジレス回答) (523レス)
Perl初心者スレ(マジレス回答) http://mevius.5ch.net/test/read.cgi/tech/1349538519/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
328: デフォルトの名無しさん [sage] 2014/11/12(水) 00:09:33.46 ID:WHJDipVn [^\d]\d{2}[^\d] http://mevius.5ch.net/test/read.cgi/tech/1349538519/328
329: デフォルトの名無しさん [sage] 2014/11/12(水) 02:38:25.07 ID:T/b7ogJF % perl -le 'print q{22} =~ /[^\d]\d{2}[^\d]/' % perl -le 'print q{22} =~ /(?<!\d)\d{2}(?!\d)/' 1 % perl -le 'print q{22} =~ /(?:^|\D)\d{2}(?:$|\D)/' 1 http://mevius.5ch.net/test/read.cgi/tech/1349538519/329
330: 327 [sage] 2014/11/12(水) 22:11:30.88 ID:obciIUzc /(?<!\d)\d{2}(?!\d)/ これが期待通りの結果が得られました。 (?<!)とか(?!)とかこれまで使ったこと無かったので勉強になりました。 ありがとうございました。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/330
331: デフォルトの名無しさん [sage] 2014/11/13(木) 00:03:57.67 ID:w30Rb1CY テストパターンに英字が入ってませんぜ http://mevius.5ch.net/test/read.cgi/tech/1349538519/331
332: デフォルトの名無しさん [] 2014/11/13(木) 05:25:18.91 ID:iJHzIgO3 \b使えよ。便利だぞ。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/332
333: デフォルトの名無しさん [sage] 2014/11/13(木) 05:51:07.66 ID:DTTQy1M/ そりゃ\b使って期待通りの結果が出るなら使うだろ http://mevius.5ch.net/test/read.cgi/tech/1349538519/333
334: デフォルトの名無しさん [] 2014/11/13(木) 23:58:39.09 ID:bKuFahzS 以下のような日付が下から上に並んでいるoriginal.txtがあるとします。 これを、日付を逆順にしたoutput.txtに整形するプログラムを作りたいです。 Windowsで、Batch fileとPerlで作れたらと考えています。よろしくお願いします。 <original.txt> ########## 20141203 ########### DNINITIENK FDKHJKDKKSK ・・・・・ ########## 20141202 ########### TUNINJKDF NIGHALKDK ・・・・・・ ########## 20141201 ########### ABCDEFGHIJKE LMNOPQRSTUV ・・・・・ <output.txt> ########## 20141201 ########### ABCDEFGHIJKE LMNOPQRSTUV ・・・・・・ ########## 20141202 ########### TUNINJKDF NIGHALKDK ・・・・・・ ########## 20141203 ########### DNINITIENK FDKHJKDKKSK ・・・・・・ http://mevius.5ch.net/test/read.cgi/tech/1349538519/334
335: デフォルトの名無しさん [sage] 2014/11/14(金) 00:03:31.59 ID:cRe1Bhcz >>332 \bだと英字と数字の境目は単語の区切りにならないみたい。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/335
336: デフォルトの名無しさん [sage] 2014/11/14(金) 01:18:41.88 ID:VOKh6jxm centosで元から入ってるperlとは別にソースインストールしたperlを別に入れました。 新しくインストールしたperlで以前から入っていたCPANモジュールを使いたい場合、再度入れなおす必要ありますか? http://mevius.5ch.net/test/read.cgi/tech/1349538519/336
337: デフォルトの名無しさん [sage] 2014/11/14(金) 02:49:12.43 ID:FARMtlO3 >>334 perl -Mvars=%h -ane '$a = $F[1] if @F == 3 ; $h{$a} .= $_ }{ print $h{$_} for sort { $a <=> $b } keys %h’ original.txt >>336 モジュールの共用は避けるべき http://mevius.5ch.net/test/read.cgi/tech/1349538519/337
338: デフォルトの名無しさん [sage] 2014/11/14(金) 06:59:52.41 ID:Ul+u6aQZ >>334 use 5.016; use warnings; my $boundary = qr/^#+\s+\d+\s+#+\s*$/; open(my $in, "<", "original.txt") or die; my @data; my $chunk = ''; while(<$in>){ if (/$boundary/ and (length($chunk) > 0)){ push @data, $chunk; $chunk = ''; } $chunk .= $_; } if (length($chunk) > 0){ push @data, $chunk; } $in->close; open(my $out, ">", "output.txt") or die; $out->print(reverse @data); $out->close; http://mevius.5ch.net/test/read.cgi/tech/1349538519/338
339: デフォルトの名無しさん [sage] 2014/11/14(金) 20:30:37.37 ID:FARMtlO3 単純に逆にするだけか perl -00pe '$_ = join q{}, reverse ( split /(?=^#)/m)' http://mevius.5ch.net/test/read.cgi/tech/1349538519/339
340: デフォルトの名無しさん [] 2014/11/16(日) 13:54:55.61 ID:f46/IGen >338,337,339 有難うございました。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/340
341: デフォルトの名無しさん [sage] 2015/01/12(月) 10:56:30.31 ID:av7JsOQD my $initial_title_ = "\$" . "$initial_threads" . "_begin"; $initial_title_ = eval $initial_title_; 1行に短くなりませんか? http://mevius.5ch.net/test/read.cgi/tech/1349538519/341
342: デフォルトの名無しさん [sage] 2015/01/13(火) 00:30:37.15 ID:Dvj6a5BR my $initial_title_ = eval "\$${initial_threads}_begin"; こういうこと? http://mevius.5ch.net/test/read.cgi/tech/1349538519/342
343: デフォルトの名無しさん [sage] 2015/01/13(火) 02:35:14.88 ID:sfvPNi0Q >>342 ありがとう eval使うのが3つあったから 6行が3行になったよ http://mevius.5ch.net/test/read.cgi/tech/1349538519/343
344: デフォルトの名無しさん [sage] 2015/01/14(水) 23:01:56.10 ID:+qvvUh8r $seach_wordに日本語を入れたいのですが、それだとマッチしません。どうすればよいでしょうか? w3m -dump -cols 160 http://peace.2ch.net/test/read.cgi/tech/1349538519/| ~/Perl_instance/resSearch.pl #!/usr/bin/env perl use strict; use warnings; use utf8; my $seach_word = ">1" ; my $found_res = 0; my $res = ""; while (<>) { if (/^\d/x) { # out put, flash if ( $found_res == 1 ) { print $res; $found_res = 0; } $res = ""; } else { # searching if (/$seach_word\b/x) { $found_res = 1; } } # buffer lines $res .= $_; } http://mevius.5ch.net/test/read.cgi/tech/1349538519/344
345: デフォルトの名無しさん [sage] 2015/01/15(木) 09:31:41.42 ID:+X0UBnJQ >>344 use open ":utf8"; http://mevius.5ch.net/test/read.cgi/tech/1349538519/345
346: デフォルトの名無しさん [sage] 2015/01/15(木) 09:40:11.27 ID:+X0UBnJQ あ、 binmode STDIN , ":utf8": で http://mevius.5ch.net/test/read.cgi/tech/1349538519/346
347: デフォルトの名無しさん [sage] 2015/01/15(木) 13:13:41.60 ID:WfzbS03y binmode STDIN , ":utf8"; binmode STDOUT , ":utf8"; my $seach_word = "日本語" ; で同様のコマンド叩いて、つまり344が拾えるはずが 何故かヒットしません http://mevius.5ch.net/test/read.cgi/tech/1349538519/347
348: デフォルトの名無しさん [] 2015/01/15(木) 18:33:41.92 ID:DbiGPAED <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> http://mevius.5ch.net/test/read.cgi/tech/1349538519/348
349: デフォルトの名無しさん [sage] 2015/01/16(金) 16:08:36.80 ID:6B2q2EkL w3m -dump -cols 160 http://peace.2ch.net/test/read.cgi/tech/1349538519/|nkf -g UTF-8 UTF-8しか扱わないのにちょっとエンコード回りは複雑だ http://mevius.5ch.net/test/read.cgi/tech/1349538519/349
350: デフォルトの名無しさん [sage] 2015/01/19(月) 10:22:25.36 ID:AihfgHov webサイトの表形式データ(横方向は5列、縦方向は不定で100行ぐらい)を取得するのに、 正規表現の繰り返しマッチング m//g を使って、結果を配列に入れてるんだけど、 もっと簡単に取ってくるモジュールはないでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1349538519/350
351: デフォルトの名無しさん [sage] 2015/01/19(月) 21:45:13.42 ID:qpn2CGqA >>350 >webサイトの表形式データ の形式が分からんとなんとも。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/351
352: 349 [sage] 2015/01/19(月) 22:36:30.03 ID:bxHKMq/8 >>346 ヒント助かった。 use Encode qw/encode decode/; my $enc = 'UTF-8'; sub d($) { decode($enc, shift) } sub e($) { encode($enc, shift) } my $seach_word = "日本語"; my $found_res = 0; my $res = ""; while (<>) { if (/^\d/x) { if ( $found_res == 1 ) { print $res; $found_res = 0; } $res = ""; } else { my $seach_word_ = e$seach_word; if (/$seach_word_/x) { $found_res = 1; } } $res .= $_; } http://mevius.5ch.net/test/read.cgi/tech/1349538519/352
353: デフォルトの名無しさん [sage] 2015/01/20(火) 02:00:35.92 ID:FcML0ncg >>350 >>351 例えば、こんな表です http://ke.kabupro.jp/hist/20150107.htm 今はHTMLのソースを見て、証券コードを正規表現で抽出するために、 =~ m!<tr><th><a\shref[^>]+>(\d{4})<\/a>!ig などとして配列へ入れているのですが、泥臭いです。 もっとスマートに取得できるモジュールは無いかと思った次第です。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/353
354: デフォルトの名無しさん [sage] 2015/01/20(火) 02:06:50.85 ID:FcML0ncg (続き) 例えば統計計算用のRでは readHTMLTableというモジュール(パッケージ?)があり、表形式のデータを含んだurlを指定すれば、簡単に取得出来るのですが。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/354
355: デフォルトの名無しさん [sage] 2015/01/20(火) 07:56:47.13 ID:y2BAlbXr >>353 HTML::TableExtract http://search.cpan.org/~msisk/HTML-TableExtract-2.12/lib/HTML/TableExtract.pm Web::Scraper http://search.cpan.org/~miyagawa/Web-Scraper-0.38/lib/Web/Scraper.pm http://mevius.5ch.net/test/read.cgi/tech/1349538519/355
356: デフォルトの名無しさん [sage] 2015/01/20(火) 12:03:15.85 ID:NiHMzyM4 >>355 ありがとうございます http://mevius.5ch.net/test/read.cgi/tech/1349538519/356
357: デフォルトの名無しさん [sage] 2015/03/13(金) 20:55:35.08 ID:hJWhu2F/ なにこの良スレ http://mevius.5ch.net/test/read.cgi/tech/1349538519/357
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 166 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.009s