有没有办法指定使用正则表达式来显示不包含特定文本的结果。类似于
的内容从表中选择*,其中id不在{3,4,6};
答案 0 :(得分:1)
[^ 346] - 除3,4,6之外的任何角色。这是你问的吗?
答案 1 :(得分:0)
如何简单地查找文本,并在结果上使用not运算符?
List<String> list = ...
list = list.stream()
.filter(string -> !string.matches("[346]")) // note the !
.collect(Collectors.toList());
答案 2 :(得分:0)
根据您的示例,请考虑以下代码:
Stream.of("13","11","3","33","3a")
.filter(s -> s.matches("(?!3$|4$|6$)\\d+"))
.forEach(System.out::println);
它只会选择那些纯数字的字符串,但不匹配&#34; 3&#34;,&#34; 4&#34;或&#34; 6&#34;。
正则表达式的主要特征是
(?!3$|4$|6$)
这是负向前瞻,它与确切的字符串&#34; 3&#34;,&#34; 4&#34;和&#34; 6&#34;匹配。由于它的否定,整个表达式在此部分不匹配时匹配。