xmlコメントを含むファイルを解析する必要があります。///
具体的には、MSコンベンションを使用したac#ファイルです。
これから私は引き抜く必要があるfoobar
か、あるいは/// foobar
受け入れられるでしょう。(注-xmlをすべて1行にすると、これはまだ機能しません...)
testStr = """
///<summary>
/// foobar
///</summary>
"""
これが私が持っているものです:
import pyparsing as pp
_eol = pp.Literal("\n").suppress()
_cPoundOpenXmlComment = Suppress('///<summary>') + pp.SkipTo(_eol)
_cPoundCloseXmlComment = Suppress('///</summary>') + pp.SkipTo(_eol)
_xmlCommentTxt = ~_cPoundCloseXmlComment + pp.SkipTo(_eol)
xmlComment = _cPoundOpenXmlComment + pp.OneOrMore(_xmlCommentTxt) + _cPoundCloseXmlComment
match = xmlComment.scanString(testStr)
および出力するには:
for item,start,stop in match:
for entry in item:
print(entry)
しかし、私は文法が複数行にわたって機能することにあまり成功していません。
(注-上記のサンプルをPython 3.2でテストしました。動作しますが、(私の問題では)値を出力しません)
ありがとう!