특정 헤더로 시작하는 주어진 텍스트의 내용을 추출하려고합니다.특정 헤더의 내용 추출을위한 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