あなたはこれを行うことができます:
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()
質問
このような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)