fparsec rfc2822解析多个标题行

时间:2017-04-11 09:46:51

标签: fparsec rfc2822

我正在尝试使用fparsec解析RFC 2822,但我无法处理多行的标题:(它与下一个标题混淆): 这是我最好的尝试:你有任何提示吗?

from colors import colorsDescriptors
from tafuta import tafutA
import argparse
import cv2
import sys

ap = argparse.ArgumentParser()
ap.add_argument("-i", "--index", required = True,
            help="path to place where features are to be stored")
ap.add_argument("-q", "--query", required =True,
            help="path to the images that are to be queried")
# ap.add_argument("-r", "--result-path", required = True,
#                 help="path to the image result")
ap.add_argument("-r", "--result", required = True,
            help="path to the image result")
args = vars(ap.parse_args())

description = colorsDescriptors((8, 12, 3))
query = cv2.imread(args["query"])
features = description.explain(query)
search = tafutA(args["index"])
results = search.search(features)

cv2.imshow("Inline", query)

for (score, resultsId) in results:
    result = cv2.imread(args["result"]+ "/" + resultsId )

cv2.imshow("matokeo", result)
cv2.waitKey(0)

我期待在3,1:交付给:adfasdf@aasdfas.afa.com

1 个答案:

答案 0 :(得分:2)

从不介意看起来我需要回溯(使用尝试),以便解析器不会总是期望\ t而是寻找下一个标题。

让keyValueComplex = stringLiteral。>>。 (ws>> .pchar':')。>>。 (很多(尝试lineValue))。>>。 lastValue |>> (有趣的((((g,h)),d),b) - >(g,(Seq.fold(+)“”d)+ b))

现在产生:

成功:[(“Return-Path”,“< ewrwe@werw.com> werwe”); (“Delivered-To”,“adfasdf@aasdfas.afa.com”)]