作者: Atsuo Ishimoto
日時: 2004/3/08(00:18)
石本です。

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