石本です。
On Sun, 07 Mar 2004 22:17:15 +0900
Kaoru Kusunoki <kusunoki@...-inet.or.jp> wrote:
> reg = re.compile("(.| |\n)*<td(\n|.| )*(Tod|Ton|Sun|Mon|Tue|Wed|Thu|Fri|Sat)(.*)( +<br>)")
ここを、
reg = re.compile("(.)*<td(.)*(Tod|Ton|Sun|Mon|Tue|Wed|Thu|Fri|Sat)(.*)( +<br>)", re.DOTALL)
のように、正規表現にre.DOTALLを指定して"."が"\n"にもマッチするよう指定す
るだけでもだいぶん早くなるみたいです。
もっと高速化する必要があれば正規表現の見直しと、ついでに
while i < len(table) :
table_txt = " ".join(table[i].split())
table_2 = ....
のようにして、処理前に全ての空白文字をまとめて一つのスペースにしてしまう
と正規表現が簡単になり、効率も良くなると思います。
あと、このような場合のループの書き方ですが、
i = 0
while i < len(table) :
xxx = table[i]
....
i += 1
ではなく、
for xxx in table:
....
と書いたほうがよりPython流でナイスです。
--------------------------
Atsuo Ishimoto
ishimoto@...
Homepage:http://www.gembook.jp