我在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]+)";')
但两者都不匹配。
非常感谢任何帮助!
答案 0 :(得分:2)
您需要将模式定义为原始字符串。
re.compile(r'content: "\\([a-z0-9]+)";')
>>> 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]+(?=";)
示例代码:
import re
p = re.compile(ur'(?<=content: "\\)[a-z0-9]+(?=";)')
test_str = u"content: \"\f215\";"
re.search(p, test_str)