2012年12月13日木曜日

開発環境

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

その他参考書籍

1.

コード(TextWrangler)

sample.pl

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

my $what = "fred|barney";
while(){
  chomp;
  if(/($what){3}/){
    print "Matched: |$`<$&>$'|\n";
  } else {
    print "No match: |$_|\n";
  }
}

入出力結果(Terminal)

$ ./sample.pl
fredfredfred
Matched: |<fredfredfred>|
fredfredbarney
Matched: |<fredfredbarney>|
barneyfredfred
Matched: |<barneyfredfred>|
barneybarneybarney
Matched: |<barneybarneybarney>|
fredfred
No match: |fredfred|
$

ちなみにJavaScriptの場合。

コード(TextWrangler)

var what = "fred|barney";
var str = $('#t0').val();
var reg = new RegExp("(" + what + "){3}");
$('#pre0').append(str + ": ");
if(reg.test(str)){
  $('#pre0').append("Matched\n");
} else {
  $('#pre0').append("No match\n");
}




pythonの場合。

sample.py

コード(TextWrangler)

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

import re

what = "fred|barney"
pattern = re.compile("(" + what + "){3}")
while True:
    str = input()
    if re.match(r"^\s*$", str): break
    if re.match(pattern, str):
        print("Matched")
    else:
        print("No match")

入出力結果(Terminal)

$ ./sample.py
fredfredfred
Matched
fredfredbarney
Matched
barneyfredfred
Matched
barneybarneybarney
Matched
fred
No match
fredfred
No match

$

0 コメント:

コメントを投稿