我使用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。
答案 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*')
,则似乎有效。
虽然我不知道究竟出了什么问题。