用于设置计时器的正则表达式

时间:2013-05-14 20:10:36

标签: regex timer

好的,我还在学习Regex,我正在为我的手机制作语音助手,我希望它接受以下任何一种:

set the timer for 5 minutes
set timer for 5 minutes
set a timer for 5 minutes
set a goddamn timer for 5 minutes
set this timer for 5 minutes

基本上我想要settimer之间的每个字。

我正在尝试这个,但它不起作用。

set  (the|a|.) timer for [1-9]{1,} (minute|minutes)

另一个命令是取消计时器:

cancel the timer   
timer cancel  
cancel timer  

基本上,如果句子中的任何组合出现“取消”和“计时器”这两个词,它应该取消计时器。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:2)

你......可以这样做:

set(.*?)timer for [1-9]{1,} minutes?

此捕获组将捕获任何内容。 ?使s成为可选项。

对于另一个,我想你可以有像

这样的东西
(cancel).*?(timer)|(timer).*?(cancel)

答案 1 :(得分:0)

在perl中它会是这样的:

$value =~ s/^set (.*?)timer//s;

因为它在括号中它会匹配到$ 1,如果你需要替换它,在//之间放一些东西