下面的正则表达式
\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 上不匹配吗?