我有非常简单的正则表达式代码:
(project-(?!old|rejected))
我有以下字符串列表:
project-ok 2016/3/4
project-new 2016/4/5
project-in-progress 2015/3/8
project-cancel 2014/2/7
project-rejected 2011/9/2
... etc.
我想捕获项目 - 除了项目旧和项目拒绝之外的任何东西。
尝试匹配时: project-ok 2016/3/4 。我希望它返回'project-ok'这个词,但我得到了返回值:'project - '。
如何匹配项目标签的全部字样?
答案 0 :(得分:1)
答案 1 :(得分:1)
让我们看看您尝试使用(project-(?!old|rejected))
project-
匹配project-
。
(?!old|rejected)
向前看并检查是否存在old
或rejected
。如果是,则不匹配。但是在不存在
因此,您需要匹配标签,直到发现空白。这可以通过在您之前的条件之后使用\S+
或[^\s]+
来完成。
完整的正则表达式如下所示:project-(?!old|rejected)[^\s]+
<强> Regex101 Demo 强>
答案 2 :(得分:0)
你可以试试这个:
mToolbar.getMenu().findItem(id).setEnabled(false);
这里有相同的解剖:
(?i)(project-(?!old|rejected)\b[-0-9a-z/ ]+)
希望这有帮助。