日本語検索便乗検証(殿、それには落とし穴がありまする編)
via ときどきの雑記帖様。
内部Unicode化されたものに関しては思い通りに行きません。
404 Not Found
...
ちなみにこの辺の事情は、gawkやGNU sed、GNU grep、 Pythonなんかでも同じです。
「日本語を検索」って結構やりたい事あると思うので。
utf-8としてPythonでもチェック。
うお。黑が文字参照としてうってもソースコード中にでないなぁ。
?がそれです。
#!/usr/bin/env python # encoding: utf-8 import sys import os import re mpt = (re.compile(u'[亜-煕]'), re.compile(u'[亜-?]')) def main(): target = u'漢字正規表現亜腕一十百千万億兆京' for mp in mpt: print "pattern = %s, target = %s" % ( mp.pattern.encode('utf-8'), target.encode('utf-8')) ml = mp.findall(target) for m in ml: print m.encode('utf-8'), print pass if __name__ == '__main__': main()
pattern = [亜-煕], target = 漢字正規表現亜腕一十百千万億兆京
漢 字 正 亜 十 千 億 兆 京
pattern = [亜-黑], target = 漢字正規表現亜腕一十百千万億兆京
漢 字 正 規 表 現 亜 腕 十 百 千 億 兆 京
追記:
元ネタのはてブを見ると元々は [亜-鄢]だったのかな。
pattern = [亜-鄢], target = 漢字正規表現亜腕一十百千万億兆京
漢 字 正 規 表 現 亜 腕 十 百 千 億 兆 京
まぁ、抜けるのは一緒なんですけど。
追追記:
re.compile(u'[亜-万]')
とテストで書こうとすると
error: bad character range
と言われてしまう。ううむ。
文字コードに弱いTextMateではつらくなってきた。