トップ «前の日記(2009-11-06) 最新 次の日記(2009-11-16)» 編集

tito Memo

2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|
2010|02|04|05|06|08|
2011|01|02|03|08|10|12|
2012|01|
2013|03|04|

個人的なメモを記していくためのページです。


2009-11-07

* camelKWIC.pl

一行一単語を入力として'_'やcamel caseで区切られた単語のKWIC風見出しを出力するperlスクリプト

 use strict;
 
 my %word;
 my %key;
 my (@a,@b);
 
 $"="";
 while(<>){
     chop;
     $word{$_}=1;
     @a=split(/(?:_|(?<=[a-z0-9])(?=[A-Z]))/,$_);
 
     foreach my $k(@a){
         $key{$k}=1 if(length $k>1);
     }
 }
 
 foreach my $i( sort { lc $a cmp lc $b || $a cmp $b } keys %key){
     print "==== $i ====\n";
     foreach ( sort { lc $a cmp lc $b || $a cmp $b } keys %word){
         if( /$i/ ){
             my @a=split(/(?:(?=_)|(?<=_)|(?<=[a-z0-9])(?=[A-Z]))/,$_);
             my $j;
             for( $j=0; $j <@a;++$j){
                 if( $a[$j] eq $i ){
                     printf "%20s%s\n","@a[0..$j-1]","@a[$j..$#a]";
                 }
             }
 
 #              while( /(\A|(?<=[_a-z0-9])(?=[A-Z])|(?<=_)(?=[A-Za-z0-9]))/g){
 #                  my($l,$r)=($`,$');
 #                  printf "%20s%s\n", $l, $r if( $r=~/^$i/);
 #              }
         }
     }
 }
 $ cat foo 
 aSampleTest
 Sample_test_word
 word_Sample_test
 test_test_test
 
 $ perl camelKWIC.pl <foo
 ==== Sample ====
                    aSampleTest
                     Sample_test_word
                word_Sample_test
 ==== Test ====
              aSampleTest
 ==== test ====
              Sample_test_word
                     test_test_test
                test_test_test
           test_test_test
         word_Sample_test
 ==== word ====
         Sample_test_word
                     word_Sample_test
 
[]

このページ内のリンクがクリックされたことを知るのにjavascriptを使用しています。javascriptを無効にするとあなたがどのリンクをクリックしたか通知されなくなります。javascriptを無効にしてもこのページの閲覧に問題はありません。javascriptを無効にするページもご覧ください。
クラシック・ドーム クラシック・ドームソフト・ドーム ソフト・ドームソフト・リム ソフト・リム
キャップ10個入り。3種類の詰め合わせ(3種x2=6個入り)の、トラックポイント・キャップ・コレクションはIBMダイレクトで945円(税込み)