0

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

/*
author : name
uri : link
etc
*/

不提取其他评论

/* header */
/* footer */

所以我尝试了这个:

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

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

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

结果什么都没有:

[]

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

4

3 回答 3

1

如果您只需要第一个评论,您可以只使用第一个结果:

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

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

print re.search(r'\/\*(.*)\*\/', cssText )
于 2013-11-07T18:36:13.583 回答
1

当您匹配多行字符串时,您需要制作 . 也匹配 \n:

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

见: http ://docs.python.org/2/library/re.html#re.S

于 2013-11-07T18:51:02.890 回答
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()
于 2013-11-07T18:45:25.013 回答