Python:从css文件中提取注释

时间:2013-11-07 18:28:56

标签: python css regex comments text-processing

我想提取CSS文件的第一个注释块,如下所示:

/*
author : name
uri : link
etc
*/

不提取其他评论

/* header */
/* footer */

所以我尝试了这个:

print re.findall(r'\/\*(.*)\*\/', cssText )

除了我需要的块外,这给了我所有其他的评论。所以我把它改成了这个,更确切地说:

print re.findall(r'\/\*\n(.*)^\*\/', cssText )

结果一无所获:

[]

你有什么建议吗?谢谢: - )

3 个答案:

答案 0 :(得分:1)

如果您只需要第一条评论,则只能使用第一个结果:

print re.findall(r'\/\*(.*)\*\/', cssText )[0]

您还可以使用re.search搜索第一个匹配的匹配项:

print re.search(r'\/\*(.*)\*\/', cssText )

答案 1 :(得分:1)

当你匹配多行字符串时,你需要制作。匹配\ n也是:

print re.findall(r'\/\*\n(.*?)\*\/', cssText, re.S)

请参阅: http://docs.python.org/2/library/re.html#re.S

答案 2 :(得分:0)

你可以这样做:

css = """
/*
author : name
uri : link
etc
*/

bla bla bla. Blah blah
x: 10;
color: red;

/* header */
/* footer */
"""

import re

pat = r'\/\*([\S\s]*?)\*\/'

print re.findall(pat, css)
print re.search(pat, css).group()