URL字句解析
By Patineboot
- 1 minutes read
- 299 words
re.Scannerクラス
re.Scannerクラスを使用して正規表現で字句解析ができる。
urlの簡単な解析
実際にはurlparseを使用すれば良いが、Scannerを使用して簡単な例をあげると
#!/usr/bin/python
# -*- coding: utf-8 -*-
import re
def action(scanner, word):
return word
target = "http://www.sample:80/%7Eguido/Python.html"
scanner = re.Scanner([
(r"\w+:", action),
(r"//.+/", action),
(r".+", action),
])
print scanner.scan(target)
結果
(['http:', '//www.sample:80/%7Eguido/', 'Python.html'], '')
Scannerでのコンストラクタに渡した正規表現と一致する場合は、対にした関数が呼び出される。 関数で返却した文字列がscanの1番目のリストに格納される。 Scannerでのコンストラクタに渡した正規表現と一致しない場合は、scanの2番目文字列に格納される。
参考:Python sre.Scannerクラス - SumiTomohikoの日記