Je suis novice en pyparsing. J'essaye d'analyser un texte mais je ne comprends pas vraiment comment se comporte le pyparage.Analyse de texte usng La combinaison ne donne aucun résultat
from pyparsing import *
number = Word(nums)
yearRange = Combine(number+"-"+number)
copyright = Literal("Copyright (C)")+yearRange+Literal("CA. All Rights Reserved.")
copyrightCombine = Combine(copyright)
date = Combine(Word(nums)+"/"+Word(nums)+"/"+Word(nums))
time = Combine(Word(nums)+":"+Word(nums)+":"+Word(nums))
dateTime = Combine(date+time)
pageNumber = Suppress(Literal("PAGE"))+number
pageLine = Word(nums)+"Copyright (C) 1986-2014 CA. All Rights Reserved."+Combine(Word(nums)+"/"+Word(nums)+"/"+Word(nums))+Combine(Word(nums)+":"+Word(nums)+":"+Word(nums))+pageNumber
pageLine2 = number+copyright+dateTime+pageNumber
pageLine3 = Word(nums)+copyright+Combine(Word(nums)+"/"+Word(nums)+"/"+Word(nums))+Combine(Word(nums)+":"+Word(nums)+":"+Word(nums))+pageNumber
test = "1 Copyright (C) 1986-2014 CA. All Rights Reserved. 07/05/17 10:58:56 PAGE 1241"
print(pageLine.searchString(test))
print(copyright.searchString(test))
print(copyrightCombine.searchString(test))
print(pageLine2.searchString(test))
print(pageLine3.searchString(test))
Sortie:
[['1', 'Copyright (C) 1986-2014 CA. All Rights Reserved.', '07/05/17', '10:58:56', '1241']]
[['Copyright (C)', '1986-2014', 'CA. All Rights Reserved.']]
[]
[]
[['1', 'Copyright (C)', '1986-2014', 'CA. All Rights Reserved.', '07/05/17', '10:58:56', '1241']]
Je veux utiliser l'analyseur défini comme pageLine2 pour pour une raison quelconque, l'analyseur copyrightCombine ne renvoie aucun résultat. Il semble que lorsque j'essaie d'utiliser Combine(), quelque chose provoque l'analyse de ne pas retourner la correspondance.
S'il vous plaît vérifier également la documentation en ligne à https://pythonhosted.org/pyparsing, qui contient plus de 1000 lignes d'exemples en ligne (ou vous pouvez également utiliser la commande 'help' de Python, comme dans' help (Combine) '. – PaulMcG