次の正規表現
\s*([\w_]*)\s*(,\s*|=\s*(\d*)\s*,)\n
次の行に一致します (改行が追加されます)
_FIRST_ELEMENT_ = 10000,
Windows ではありますが、Mac ではありません。私が使用している環境は、CPython 2.6 インタープリターを使用する Cinema 4D (3D ソフトウェア) の Python 実装です。
私は Mac を持っていないので、誰かが簡単なテストをしてくれました。しかし、彼には私のためにさらに検査をする時間がありません。
両方のプラットフォーム (Win/Mac) で、同じコードが Cinema 4D のスクリプト ウィンドウでテストされています。
import re
enum_match = re.compile('\s*(\w*)\s*(,\s*|=\s*(\d*)\s*,)\n')
line = ' _FIRST_ELEMENT_ = 10000,\n'
match = enum_match.match(line)
if not match:
print "Regex did not match."
else:
print match.groups()
Windows での出力:
('_FIRST_ELEMENT_', '= 10000,', '10000')
Mac での出力:
Regex did not match.
私が考えることができる唯一のことは、アンダースコア( )がMac_
に含まれていないことです。\w
正規表現が Windows では一致するのに Mac では一致しない理由を知っていますか?