我想學習pyparsing。這聽起來很有希望,而且對於文本處理來說很有趣。無論如何,這裏是我的問題:pyparsing:提取包含特定文本的字符串
我有一個課程名稱的列表。例如,
courselist = ["Project Based CALC",
"CALCULUS I",
"Calculus II",
"Intermediate MICRO",
"Intermediate CALCULUS advance",
"UNIVERSITY PHYSICS"]
我想從上面的列表中提取與微積分有關的課程。這些都是具有完整單詞CALCULUS或縮寫CALC的課程。首先,假設這些單詞只出現在大寫字母中(上例中有一個小寫字母;讓我們暫時忽略它)。
我寫了下面的代碼:
import pyparsing as pp
calc = pp.Literal("CALC")
for entry in courselist:
if len(calc.searchString(entry)) >= 1:
print entry
else:
pass
我的第一個問題是,是否有這樣做使用pyparsing的更好的辦法?
現在上面的錯過Calculus II
。我知道我可以捕獲通過定義calc
爲:
calc = pp.Literal("CALC") | pp.Literal("Calc")
但是,這將錯過cAlc
。有沒有辦法指定語法,以使CALC中的所有大小寫字母匹配。
謝謝你的幫助。
你會發現一些在pyparsing維基(pyparsing.wikispaces.com)文檔/文章鏈接,和UML圖,HTMLDOC和示例包含在SourceForge的源代碼分發中。您還可以10美元從O'Reilly購買電子書。 – PaulMcG 2011-02-25 04:44:35