質問

このようなCSSファイルの最初のコメントブロックを抽出したいと思います。

/*
author : name
uri : link
etc
*/

他のコメントを抽出せずに

/* header */
/* footer */

だから私はこれを試しました:

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

これにより、必要なブロックを除く他のすべてのコメントが与えられました。だから私はそれをより正確にするためにこれに変更しました:

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

そして、結果は何もありませんでした:

[]

提案はありますか?ありがとう :-)

役に立ちましたか?

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

他のヒント

最初のコメントのみが必要な場合は、最初の結果のみを使用することができます。

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

使用することもできます re.search これは、最初のマッチングの発生を検索します。

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

マルチライン文字列に一致するときは、作成する必要があります。一致 nも:

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

見る:http://docs.python.org/2/library/re.html#re.s

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top