開発環境
- 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 コメント:
コメントを投稿