即時編寫一個簡單的命題邏輯公式分析器在python中,它使用正則表達式re模塊和lex/yacc模塊進行lexing/parsing。本來我的代碼可以挑出寓意爲 - >,但添加邏輯等價(< - >)而造成的問題與編譯後的表情幫助在python中使用re模塊構建正則表達式
IMPLICATION = re.compile('[\s]*\-\>[\s]*')
EQUIVALENCE = re.compile('[\s]*\<\-\>[\s]*')
...
elif self.IMPLICATION.search(formula[0].strip()):
...
elif self.EQUIVALENCE.search(formula[0].strip()):
...
我最初嘗試添加[^ <]與前部 - >使它忽略等價的實例,但這只是使它不能接受任何蘊涵的實例。任何可能的幫助將熱烈歡迎:)
你爲什麼要用正則表達式而不是yacc語法? – jrockway 2009-02-05 03:55:48
你可以發佈展示此行爲的最小自包含示例嗎?你也可以創建這個例子。 – llimllib 2009-02-05 03:59:21