Regex101生成的代码给出了错误。 (蟒蛇)

时间:2015-07-27 14:02:15

标签: python regex

我使用regex101来测试一个简单的正则表达式(\ D + \ n *),但生成的代码会产生语法错误。

import re
p = re.compile(ur"\D+\n*", re.UNICODE)
test_str = u"2080 usec, 240 usec\n1780 usec, 260 usec\n700 usec, 240 usec\n700 usec, 240 usec\n2480 usec, 240 usec\n700 usec, 240 usec\n700 usec, 240 usec\n"
subst = u""

result = re.sub(p, subst, test_str)

出了什么问题?使用python 3.4.3。

3 个答案:

答案 0 :(得分:3)

ur前缀为not supported in Python 3。请改用r

Python 2.7:

>>> ur"\D+\n*"
u'\\D+\\n*'

Python 3:

>>> ur"foo"
  File "<ipython-input-12-e07f08d3b66c>", line 1
    ur"foo"
          ^
SyntaxError: invalid syntax

这是我见过的最不实用的Python错误之一,说实话。

答案 1 :(得分:1)

仅使用r字符串前缀而不是ur

答案 2 :(得分:0)

如果您导入re,并使用re.compile(r'\D+\n*'),则似乎有效。

虽然我不知道究竟出了什么问题。