如何使用正则表达式捕获反斜杠

时间:2015-03-06 18:47:40

标签: python regex python-2.7

我在CSS样式表中有以下内容:content: "\f215";。 我需要从中提取f215并尝试以下操作:

re.compile("content: \"\\([a-z0-9]+)\";")

我在这里测试了这个http://www.pythonregex.com/,它就像一个魅力。 但是,当我将其粘贴到脚本并在本地运行时,它会引发sre_constants.error: unbalanced parenthesis并且我很遗憾。 我也试过

re.compile(re.escape('content: "\([a-z0-9]+)";')
re.compile('content: "\\\([a-z0-9]+)";')

但两者都不匹配。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:2)

您需要将模式定义为原始字符串。

re.compile(r'content: "\\([a-z0-9]+)";')

DEMO

>>> s = r'content: "\f215";'
>>> m = re.compile(r'content: "\\([a-z0-9]+)";')
>>> m.search(s).group(1)
'f215'

答案 1 :(得分:0)

您可以尝试Lookaround来获得所需的结果

(?<=content: "\\)[a-z0-9]+(?=";)

DEMO

示例代码:

import re
p = re.compile(ur'(?<=content: "\\)[a-z0-9]+(?=";)')
test_str = u"content: \"\f215\";"

re.search(p, test_str)