在python中处理if语句的句子的最佳方法

时间:2015-07-21 16:33:49

标签: python regex

我正在使用python中的语音文本程序在我的计算机上运行命令。我的问题是我不确定使用正则表达式是否是处理命令的最佳方法。命令分为两类问题和操作,我检查第一个单词是否可以拆分。但是,我不知道如何在此之后过滤,例如给定命令

  

在上午五点半设置闹钟

我首先将第一个单词过滤为动作并移至我的doActions函数

def doAction(str2):
words = str2.split()
if words[0] == 'set':
    a = re.compile(' set an alarm for (\w+ \w*) (am|pm)')
    m = a.match(str2)
    if m:
         print(m.group(1), m.group(2))
         setAlarm(m.group(1), m.group(2))
     else:
         print(str2)

这适用于这一个命令,但似乎添加更多诸如

的效率非常低
  

开始"程序"

     

3个小时叫醒我

     

进入睡眠状态几个小时

...

有没有更好的方法来实现这一点,这将更容易添加,或者这已经是一个比我意识到的更好的方法。我对正则表达式很陌生,所以对于我尝试的内容可能有更好的表达方式。

行动

转向"方向"音量

发出哔哔声"数字" "单元"

每个"号码"发出哔​​哔声"单元" "数"次

转"开/关" "装置"

开始"程序"

在"小时"叫醒我"分钟&#34 ;? "今天/明天"

叫醒我"今天/明天"在"小时" "分钟"

叫醒我"号码" "单元"

叫醒我"号码" "单元"和"数字" "单元"

text" person"

我想我可能会为他们制作正则表达式,但他们认为他们可能是资源密集型的。如果我要使用它们,我是否应该在函数外部构建和编译表达式?

0 个答案:

没有答案