考虑我有一个文件喜欢(只是摘录)
name: 'foobar'
foobar
当我发现与时,我喜欢检索name
。
我目前的做法是
Pattern m = Pattern.compile("name: '(.+)'");
try (Stream<String> lines = Files.lines(ruleFile)) {
Optional<String> message = lines.filter(m.asPredicate()).findFirst();
if (message.isPresent()) {
Matcher matcher = m.matcher(message.get());
matcher.find();
String group = matcher.group(1);
System.out.println(group);
}
}
看起来不太好 过度使用模式和匹配器似乎是错误的。
有没有更简单/更好的方法?特别是如果我有多个键,我喜欢这样搜索吗?
我希望有更多类似的东西,以避免两次匹配模式:
Pattern p = Pattern.compile("name: '([^']*)'");
lines.map(p::matcher)
.filter(Matcher::matches)
.findFirst()
.ifPresent(matcher -> System.out.println(matcher.group(1)));
也就是说,对于每个字符串的匹配器,获取第一个匹配的字符串,对于该匹配器,将输出第一组。
问题内容: 如果我在jape规则中写的词出现在同一句子中,则需要注释句子的一部分。例如,句子是“孩子不能抗拒对其常规的任何改变”。我在“ trouble.lst”文件中添加了诸如“ resist”之类的词,在“ alteration.lst”文件中进行了更改。现在,在这句话中,我需要将“抵制任何更改”部分注释为“ A3b”。我尝试使用以下代码,但未考虑同一句子中的单词。我的日本规则也是从不同的句子
本文向大家介绍在Python中使用glob模块查找文件路径的方法,包括了在Python中使用glob模块查找文件路径的方法的使用技巧和注意事项,需要的朋友参考一下 glob模块是最简单的模块之一,内容非常少。用它可以查找符合特定规则的文件路径名。跟使用windows下的文件搜索差不多。查找文件只用到三个匹配符:”*”, “?”, “[]“。”*”匹配0个或多个字符;”?”匹配单个字符;”[]“匹配
问题内容: 我有一个大约40万行的文本文件。我需要将此文本文件导入一个程序,该程序仅接受以空格或制表符分隔的文本文件,但是此文本文件以分号分隔。我要从(Arcmap)导出文本文件的程序中没有选项来更改分隔,并且在文本文件本身中进行查找和替换实际上需要2天。 我已经搜索了一个脚本来执行此操作,但是它们似乎都用空格替换了单词文件的整个LINE,而不是单独替换了每个分号,而给我留了一个空的文本文件。 这
问题内容: 我使用此命令查找具有给定模式的文件,然后将其重命名为其他文件 运行此命令时,我看到一些类似的输出 但是最后,当我运行时,我看到了旧文件名。 问题答案: 您正在回显’mv’命令,而不是实际执行它。改成:
问题内容: 我编写了以下方法来查找映射到最高值的键,然后尝试转换为java 。你能帮忙吗? 问题答案: 您可以通过以下方式获得一个钥匙 但不幸的是,没有内置函数可以获取所有等效的最大值。 最简单,直接的解决方案是先找到最大值,然后再检索映射到该值的所有键: “ 如何强制max()返回JavaStream中的所有最大值? ”中讨论了单次获取流的所有最大值的解决方案。”。您将看到,如果您的输入是普通的