什么合适的正则表达式排除一个单词

时间:2017-09-20 15:58:50

标签: java regex

我有以下句子:

从我的列表中删除所有

从我的列表中删除

删除列表

从我的列表中删除所有

Akash从我的列表中删除所有

这是我的正则表达式:

(?i)^.*(!delete all|!remove all|remove|delete)(.*?)(from my list|from the list|from list|list|reminders|shopping list|reminders list)(.*)$

我不希望这个匹配'全部删除'或'全部删除',但上面的内容不匹配,即使我提到!delete all|!remove all混淆了!

1 个答案:

答案 0 :(得分:1)

您正在寻找negative lookahead assertion

(?i)(?:delete|remove)(?!\s+all)

RegEx Demo

如果我们在(?!\s+all)all之后有delete空格,那么

remove是一个否定前瞻断言,但是匹配失败。