我正在尝试通过 android 上的语音识别来匹配命令。识别很好,但我在制作我的一种正则表达式模式时遇到了麻烦(该程序使用 java.util.regex)
我有一个命令可以停止我的音乐。它匹配任何时候停止或杀死与音乐一词相同的命令。它看起来像这样:
((stop|kill).*music)|(music.*(stop|kill))
不是很漂亮,我知道,但它有效
我的问题是我无法制定相反的表达方式:即仅当命令中的任何地方都不存在单词 stop 或 kill 时才匹配术语 music。我一直在寻找并试图理解负面的环顾四周,但它们让我很困惑
我已经设法使用这样的方法防止与前瞻匹配:
music(?!.*(stop|kill))
这可以防止在“音乐”之后出现 stop 或 kill 时出现匹配,但我一生都无法弄清楚如何让它在消极的后视下工作。我想也许我后面的通配符把一切都搞砸了,但我真的不知道。
我感到非常愚蠢,非常感谢任何帮助。