Java 如何在与regexp不匹配的映射中查找字符串键?
我只需要一个映射,它包含与某个regexp不匹配的所有键和值。在Java中是否有一种简单的方法来否定查找或匹配Java 如何在与regexp不匹配的映射中查找字符串键?,java,regex,Java,Regex,我只需要一个映射,它包含与某个regexp不匹配的所有键和值。在Java中是否有一种简单的方法来否定查找或匹配 Pattern pattern = Pattern.compile("(.*)"+dateFormatter.format(Date.from(now))+"(.*)"); Map<String, Writer> toBeClosed = orcWriterMap.entrySet().stream() .filter(entry -> pattern.matc
Pattern pattern = Pattern.compile("(.*)"+dateFormatter.format(Date.from(now))+"(.*)");
Map<String, Writer> toBeClosed = orcWriterMap.entrySet().stream()
.filter(entry -> pattern.matcher(entry.getKey()).find())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
不要用
不要用
可以对Mather matches函数求反
.filter(entry -> !pattern.matcher(entry.getKey()).matches())
在这种情况下,使用matches函数比使用find函数更好,因为我们不处理多个子序列。您可以对Mather matches函数求反
.filter(entry -> !pattern.matcher(entry.getKey()).matches())
在这种情况下,使用matches函数比使用find函数更好,因为我们不处理多个子序列。您还可以将模式转换为谓词。 例如:
还可以将模式转换为谓词。 例如:
请查看代码的以下部分:
filter(entry -> pattern.matcher(entry.getKey()).find())
您可以在这里过滤源流。
对于每个源条目,检查该条目中是否包含密钥
在模式中的某个地方有匹配项
因此,如果您想获得一个包含与模式不匹配的键的贴图,
然后只需取消过滤条件:
filter(entry -> !pattern.matcher(entry.getKey()).find())
请注意感叹号字符-否定运算符。请查看代码的以下部分:
filter(entry -> pattern.matcher(entry.getKey()).find())
您可以在这里过滤源流。
对于每个源条目,检查该条目中是否包含密钥
在模式中的某个地方有匹配项
因此,如果您想获得一个包含与模式不匹配的键的贴图,
然后只需取消过滤条件:
filter(entry -> !pattern.matcher(entry.getKey()).find())
注意感叹号char-negation运算符。使用。splitpattern@WiktorStribiżew不知道你的意思。使用。splitpattern@WiktorStribi我们不知道你的意思。这种方法真的很有趣!这种方法真的很有趣!