開発環境
- 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) の7章(正規表現の世界)、7.4(練習問題)3を解いてみる。
その他参考書籍
3.
コード(TextWrangler)
sample.pl
#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use 5.016;
binmode STDIN, ':utf8';
binmode STDOUT, ':utf8';
while(<>){
print $_ if /\./;
}
入出力結果(Terminal)
$ ./sample.pl test.txt http://sitekamimura.blogspot.com http://www.mkamimura.com Mr. Slate Mrs. Wilma Flintstone $ 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の場合。
コード(TextWrangler)
var str = "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"
var lines = str.split("\n");
var result = "";
for(var i = 0; i < lines.length; i++){
if(/\./.test(lines[i])) result += lines[i] + "\n";
}
$('#pre0').text(result);
pythonの場合。
sample.py
コード(TextWrangler)
#!/usr/bin/env python3.3
#-*- coding:utf-8 -*-
import re, sys
pattern = re.compile(r"[Ff]red")
for line in open(sys.argv[1]):
if re.search(pattern, line):
print(line, end="")
入出力結果(Terminal)
$ ./sample.py test.txt http://sitekamimura.blogspot.com http://www.mkamimura.com Mr. Slate Mrs. Wilma Flintstone $
今日初めて正規表現のpatternを作る時、re.compileを使わなくても、re.searchの引数に直接渡していい事を知る。。(再利用、速度は理論的には劣るけど、実速度、体感速度にはほとんど影響無い。)
0 コメント:
コメントを投稿