2013年3月12日火曜日

開発環境

『初めてのPerl 第6版』(Randal L. Schwartz, Tom Phoenix, brian d foy 共著、近藤 嘉雪 訳、オライリー・ジャパン、2012年、ISBN978-4-87311-567-2)の6章(正規表現の世界)、7.4(練習問題)5を解いてみる。

その他参考書籍

5.

コード(BBEdit)

sample.pl

#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use 5.016;
binmode STDOUT, ':utf8';
binmode STDIN, ':utf8';

while (<>) {
    print if /(\S)\1/
}

入出力結果(Terminal)

$ ./sample.pl test.txt
http://sitekamimura.blogspot.com
http://www.mkamimura.com   
Mississippi
Bamm-Bamm    
llama
$ cat test.txt
A
a
kamimura's blog
http://sitekamimura.blogspot.com
KMI
http://www.mkamimura.com   
Fred
FRED
fred
frederick
Alfred
fred flintstone
Mr. Slate     
Mississippi
Bamm-Bamm    
wilama
barney
wilma and fred
fred and wilma
Wilma and Fred      
Fred and Wilma
wilma&fred
Mrs. Wilma Flintstone   
I saw Wilma yesterday
I, Wilma!
Z
llama
$

ちなみにJavaScriptの場合。

コード(BBEdit)

// まだJavaScriptでのファイルの操作方法よく分かってないからとりあえず文字列で
// (そろそろFile APIも学習しないと。簡単なのかな〜
var s = "A\na\nkamimura's blog\nhttp://sitekamimura.blogspot.com\nKMI\nhttp://www.mkamimura.com   \nFred\nFRED\nfred\nfrederick\nAlfred\nfred flintstone\nMr. Slate     \nMississippi\nBamm-Bamm    \nwilama\nbarney\nwilma and fred\nfred and wilma\nWilma and Fred      \nFred and Wilma\nwilma&fred\nMrs. Wilma Flintstone   \nI saw Wilma yesterday\nI, Wilma!\nZ\nllama\n",
    lines = s.split("\n"),
    result = "",
    i, max;
for (i = 0, max = lines.length; i < max; i += 1) {
    if ( /(\S)\1/.test(lines[i]) ) {
        result += lines[i] + "\n";
    }
}
$('#pre0').text(result);



pythonの場合。

コード(BBEdit)

sample.py

#!/usr/bin/env python3.3
#-*- coding: utf-8 -*-

import sys, re

with open(sys.argv[1]) as f:
    for line in f:
        if re.search(r"(\S)\1", line):
            print(line, end="")

入出力結果(Terminal)

$ ./sample.py test.txt
http://sitekamimura.blogspot.com
http://www.mkamimura.com   
Mississippi
Bamm-Bamm    
llama
$

0 コメント:

コメントを投稿