【问题标题】:Python: extracting comments from a css filePython:从css文件中提取注释
【发布时间】:2013-11-19 13:29:53
【问题描述】:

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

/*
author : name
uri : link
etc
*/

不提取其他 cmets

/* header */
/* footer */

所以我尝试了这个:

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

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

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

结果什么都没有:

[]

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

【问题讨论】:

    标签: python css regex comments text-processing


    【解决方案1】:

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

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

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

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

    【讨论】:

    • [0] 合作给了我在我需要的块之后的第一个 cmets。另一个与 .group() 一起使用,它给出的结果与第一个相同。
    【解决方案2】:

    当你匹配多行字符串时,你需要使 .也匹配\n:

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

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

    【讨论】:

    • Ups,我搞砸了报价 /* 而不是 \*。现在检查一下,它应该可以工作了。
    【解决方案3】:

    你可以这样做:

    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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-24
      • 2021-12-11
      • 2021-11-28
      • 2014-10-12
      • 1970-01-01
      • 2016-04-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多