java - 获取所有唯一的文件名

标签 java regex

作为序言,我是正则表达式的初学者。我有一个看起来像这样的字符串:

     my_folder/foo.xml::someextracontent
     my_folder/foo.xml::someextracontent
     another_folder/foo.xml::someextracontent
     my_folder/bar.xml::someextracontent
     my_folder/bar.xml::someextracontent
     my_folder/hello.xml::someextracontent

我想返回属于 my_folder 的唯一 XML 文件。所以正则表达式将返回:

my_folder/foo.xml
my_folder/bar.xml
my_folder/hello.xml

我看过Extract All Unique Lines这接近我的需要,但我不确定从那里去哪里。

我得到的最接近的尝试是 (?sm)(my_folder\/.*?.xml)(?=.*\1) 它获得了所有重复项,但我想要相反的结果,所以我尝试做一个否定的前瞻而不是 (?sm)(my_folder\/.*?.xml)(?!.*\1) 但是捕获组是完全错误的。

我的正则表达式中缺少什么?这是正则表达式的链接:https://regex101.com/r/ggY2RB/1

最佳答案

This RegEx可能会帮助您找到您可能正在寻找的唯一字符串:

/(\w+\/\w+\.xml)(?![\s\S]*\1)/s

enter image description here

如果你只想匹配my_folder,你可以试试this :

 /(\my_folder\/\w+\.xml)(?![\s\S]*\1)/s

enter image description here

关于java - 获取所有唯一的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55643124/

相关文章:

java - 无法写入 pty - linux

java - 设计运行时在两个实现类之间进行选择

Java - 正则表达式 - 删除注释

填充 ListView 时出现 JavaFx NullPointer 异常

java - 如何检查一个 arrayList 是否包含另一个 arrayList 的部分?

iphone - NSRegularExpression 帮助

regex - 关键字内的 Elasticsearch 通配符词

Javascript 替换所有不是 a-z 或撇号的字符

java - 使用 LostFocus 事件在 Java 中验证文本字段

java - JScrollPane 内部的内部 JScrollPane 无法正常工作