我需要創建一個詞法分析器來處理可變長度和結構的輸入數據。創建列表詞法分析器
說我有保留關鍵字的列表:
keyWordList = ['command1', 'command2', 'command3']
和用戶輸入的字符串:
userInput = 'The quick brown command1 fox jumped over command2 the lazy dog command 3'
userInputList = userInput.split()
我將如何去寫這樣的功能:
INPUT:
tokenize(userInputList, keyWordList)
OUTPUT:
[['The', 'quick', 'brown'], 'command1', ['fox', 'jumped', 'over'], 'command 2', ['the', 'lazy', 'dog'], 'command3']
我已經寫了一個可以識別關鍵字的標記器,但一直無法找出一種有效的方法來嵌入不將n關鍵字放入更深層次的列表中。
RE解決方案是受歡迎的,但我真的很想看到底層算法,因爲我可能會將應用程序擴展到其他對象列表,而不僅僅是字符串。
我實際上想出了類似的東西,但是你的優雅一點。 – 2012-01-15 01:27:21