擅长:python、mysql、java
<p>使用某些正则表达式很容易做到:</p>
<pre><code>>>> reg = r'(.+?)\s(%s)(?:\s|$)' % '|'.join(keyWordList)
>>> userInput = 'The quick brown command1 fox jumped over command2 the lazy dog command3'
>>> re.findall(reg, userInput)
[('The quick brown', 'command1'), ('fox jumped over', 'command2'), ('the lazy dog', 'command3')]
</code></pre>
<p>现在您只需拆分每个元组的第一个元素。在</p>
<p>对于不止一个层次的深度,regex可能不是一个好的答案。在</p>
<p>在这个页面上有一些不错的解析器供您选择:<a href="http://wiki.python.org/moin/LanguageParsing" rel="nofollow">http://wiki.python.org/moin/LanguageParsing</a></p>
<p>我认为<a href="http://www.acooke.org/lepl/" rel="nofollow">Lepl</a>是个好主意。在</p>