作者: 藤岡和夫
日時: 2006/9/03(23:28)
On Sun, 03 Sep 2006 23:02:43 +0900
"Bruce." <kbk@...> さんwrote:

> > import re
> > file = open("test.txt", "r")
> > while 1:
> > 	line = file.readline()
> > 	if re.match("^[a-z]+$", line):
> > 		print 'Alphabet: ',line
> > 	elif re.match("^[0-9]+$", line):
> > 		print 'Number: ', line
> > 	elif not line: break
> > file.close()
> > 
> > で動きますね。ただ、chompがない^^;
> 
> 中村さんの後のメールにあるとおり、キモはマッチングの
> 可否を判定した後でマッチングオブジェクトから情報を
> 取り出すことなので、藤岡さんのこのやり方だとマッチング
> 結果の情報は取り出せませんよね。

 そうですね。思ったのは、マッチするものがあれば、ブロックの内部でもう一
度re.searchで処理するとかですね。また、後方参照で取り出すようなパターン
が書けるなら、match1 = \1 (Perlとは違うので注意が必要ですね)などで取り出
せるかなと思います。これは確かめていないですけど、Perl to Python
Migrationネタです(^^)

> あと、好みを申せば空行かどうかの判定は最初にやりたいっす(笑)

 好みというよりは、ロジック的にそうすべきですね^^while文がブンブン回っ
ちゃって、取り敢えず終わらないのを避けるために付け加えたので^^;そうなっ
ていたのですよ。

藤岡 和夫
kazuf@...
TS Networkのために http://homepage1.nifty.com/kazuf/