我必须管理我对语音助手说的所有可能的家庭自动化命令,例如:
使用单个正则表达式,我必须能够细分每种类型的命令:
使用my previous question中的正则表达式(为了使用而修改),我得到:
>>> print(re.search(r'(accendi.+)(spegni.+)(imposta.+)', "accendi la luce in corridoio, spegni la luce in camera e imposta 20 in salotto").groups())
('accendi la luce in corridoio, ', 'spegni la luce in camera e ', 'imposta 20 in salotto')
这是可以的,但不适用于以下其他命令:
>>> print(re.search(r'(accendi.+)(spegni.+)(imposta.+)', "accendi la luce in camera e cameretta, spegni la luce in corridoio").groups())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'groups'
>>> print(re.search(r'(accendi.+)(spegni.+)(imposta.+)', "accendi la luce in salotto").groups())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'groups'
试试这个正则表达式。它不要求所有三个分隔符都存在,但如果它们都存在,则命令将被正确拆分:
相关问题 更多 >
编程相关推荐