特定のヘッダーで始まる特定のテキストの内容を抽出しようとしています。この目的のために特定のヘッダーの内容を抽出するためにpyparsing
Header Text_A
blablabla
blablablabla
Header Text_B
blablablablablan
blablaa
、私はそのようにthepyparsing APIを使用している:私は、上記ヘッダを持つ唯一のエントリテキストを有する場合
ParserElement.defaultWhitespaceChars=(" \t")
NL = LineEnd().suppress()
END = StringEnd()
header_1=Literal('Header Text_A')
header_2=Literal('Header Text_B')
any_header = (header_1 | header_2)
# text isn't just anything! don't accept header line, and stop at the end of
the input string
text=Group(~any_header + ~END + restOfLine)
overall_structure = ZeroOrMore(Group(any_header +
Group(ZeroOrMore(text))))
overall_structure.ignore(NL)
コードがうまく機能。しかし、上記のヘッダの例と別のテキストのエントリがある場合、それは動作しません。私はテキストのみ持っている場合、しかし...それは動作しません
blablablablabla
Header Text_A
blablabla
blablablabla
Header Text_B
blablablablablan
blablaa
:たとえば 私のようなエントリを持っている場合、それがうまく機能
Header Text_A
blablabla
blablablabla
Header Text_B
blablablablablan
blablaa
を...
どのように私は問題を解決することができますか考えてもらえますか?
特定のヘッダーが存在する場合は、ヘッダー部分のみまたはデータ部分を抽出する必要がありますか?また、少し明確な例であなたの質問を説明してください。私は成功例と失敗例の違いを理解できません – JKC
特定のヘッダに関連するデータ部分を抽出する必要があります。他の言葉では、私は特定のヘッダーを見つけた場合、私の関数は、そのヘッダーの後に存在するデータを抽出する必要があります...私が実装したコードは、私が持っているヘッダーだけを含むテキストを持っている定義された。上記のヘッダーを含む構造体を持つテキストがある場合にのみ、意味があります。ヘッダーと一致しないテキストの前にテキストがある場合、実装したコードは機能しません。私がもっとはっきりしていたことを願って、私の悪い英語を申し訳なく思う。 – Djo
regexを使用して、特定のテキストがヘッダ行に存在するかどうかを調べます。見つかった場合は、データ部分を抽出します。 – JKC