Jetonları ayrıştırıldıkları sırada işlemek için parse eylemleri kullanıyor musunuz?
def parseActionThatDeletesTheParsedTokens(tokens):
# ...
# do something interesting with the tokens
# ...
# delete the contents of the parsed tokens
del tokens[:]
Ya da sadece scanString
yerine parseString
kullanmak isteyebilirsiniz: Eğer öyleyse, del kullanarak çözümlenen jeton içeriğini silebilirsiniz.
OneOrMore(blockOfText).parseString(bigHonkingString)
do: Bunun yerine
for tokens, matchstart, matchend in blockOfText.scanString(bigHonkingString):
# do stuff with the tokens
scanString
eşleşen bir belirteçleri, başlangıç içeren 3-dizilerini verir jeneratör, ve her ardışık maçın bitiş konuma döndürür. Her ayrışmış belirteç kümesini işleyebilir, daha sonra bir sonraki kümeye geçtiğinizde, eski küme otomatik olarak atılır. Bu, programınızda en az değişiklikle, gitmenin en basit yolu olabileceğini düşünüyorum.
Yup, işte bunu yapıyorum. Bunu yapmak için 'del' kullanmak benim için gerçekten olmalıydı, ama haklısın, scanString çok daha iyi. Pıhtılaşma bilmek çok güzel bu özelliği vardır. Teşekkürler! – nedned
Paul, '' parseAction' çalıştırıldıktan sonra cümlenin içeriğini hala bellekte tutuyor mu? – Hooked
Hayır - bir ifade bastırılırsa, içeriği pıhtılaşma ile kaydedilmez. – PaulMcG