私はユニコード文字列に無効なXML 1.0文字を検出する正規表現しています。Linux/python2.7でなぜPythonの正規表現はLinuxではコンパイルされますが、Windowsではコンパイルされませんか?
bad_xml_chars = re.compile(u'[^\x09\x0A\x0D\u0020-\uD7FF\uE000-\uFFFD\U00010000-\U0010FFFF]', re.U)
を、これは完璧に動作します。ウィンドウズでは以下のように表示されます:
File "C:\Python27\lib\re.py", line 190, in compile
return _compile(pattern, flags)
File "C:\Python27\lib\re.py", line 242, in _compile
raise error, v # invalid expression
sre_constants.error: bad character range
これはWindowsでコンパイルされない理由はありますか?
Linux(Python 2.7も同じ)で同じエラーが発生します。 – interjay
Linux、Python 2.7で動作します –