タグ

2014年11月27日のブックマーク (4件)

  • Python 3の正規表現で \d を使うな! - Qiita

    案外知られていないようなのですが、Python 3 標準の reモジュールの正規表現では\dがいわゆる全角数字にもマッチします。 実際に試してみます。 >>> import re >>> re.findall(r"\d", "012012") ['0', '1', '2', '0', '1', '2'] >>> \dが'0'、'1'、'2'にもマッチしていますね。 この挙動があまり知られていない原因としては、 Python 3の公式ドキュメントの「正規表現 HOWTO」の説明が、かなり誤解を招きやすい書き方になっている。 \dがいわゆる全角数字にマッチするかどうかをわざわざテストする人は少ない 敬虔なPythonistaは正規表現を使わないやり方を好む傾向がある 等の理由が考えられますが、他の原因もあるかもしれません。 \dを[0-9]にだけマッチさせるには、\dの代わりに[0-9]を使う

    Python 3の正規表現で \d を使うな! - Qiita
  • Pythonでtest.pyを作るな! - Qiita

    「え? なんで?」と思われた方もいらっしゃるかもしれませんが、Pythonの標準ライブラリには、testというパッケージがあるので、test.pyやtest.pyがimportするモジュールが、このパッケージを利用するとエラーが発生します。test.pyという名前のスクリプトは極力作らない方がいいです。 実際に試したのが下記のログです。 $ echo from test import support >test.py $ python test.py Traceback (most recent call last): File "test.py", line 1, in <module> from test import support File "/tmp/tmp.TWTFmPjXqY/test.py", line 1, in <module> from test import sup

    Pythonでtest.pyを作るな! - Qiita
  • Python(lxml)でhtmlを処理する まとめ - Gentleちゃれんじ Tips

    Python(lxml)でhtmlを処理する まとめ Pythonにはxml/htmlを取り扱うためのlxmlという便利なサードパーティモジュールがあります。 ここでは、lxmlを使ってhtmlを処理する際に、使えるメソッドなどを簡単にまとめています。 (例がHTML5を使ったものなので気をつけてください。) 初歩的なものを細かくまとめたものは、 「lxmlでhtmlを処理する」にあります。 また、 lxml にある全てのメソッドを紹介しているわけではありませんのでご注意を。 1. htmlの読み込み >>> dom = lxml.html.fromstring(html) >>> dom <Element html at 1967ed8> >>> dom2 = lxml.html.parse('python_tips_003.html') >>> dom2 <lxml.etree._El

  • ElementTree の思い出 - かせきのうさぎさん

    昔、訳あってElementTreeのソースコードを電車の中で読んでいたら、となりの人に、これは何かと尋ねられたことを思い出した。その後、プログラムとは何か、ソースとは何かを説明することになるのだが、まぁ、どうでもいいか。 要素の後に来るテキスト <p>hello<span>world</span>thanks</p> span要素の後にあるテキストthanksをどうやって取り出すかというと、span要素の tail で取得する*1。 # python 2.5 import xml.etree.ElementTree as ET root = ET.fromstring('<p>hello<span>world</span>thanks</p>') print root.text, root[0].text, root[0].tail # -- 結果 # hello world thanks

    ElementTree の思い出 - かせきのうさぎさん