開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの機能制限無料版、light版)
- Script言語:Perl
『初めての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 コメント:
コメントを投稿