请协助从树输出中查找重复的文件名。在sublimitext中使用regex查找重复的文件名时遇到问题。我正在搜索的文件来自发送到文本文件的tree
命令的输出:
src/test/resources
|-- WPCDPS
| `-- RiskIndicatorsEvaluationRuleTest.feature
|-- Accelerated.feature
|-- AcceptedAFS.feature
|-- AgeValidationRemoval.feature
|-- Anxiety.feature
|-- CheckDisabledOccupation.feature
|-- Extended.feature
|-- Financal.feature
|-- Fainancial.feature
|-- FloridaSpecific.feature
|-- Hypertension.feature
|-- LifeForceOrPending.feature
|-- LifestyleInformation.feature
|-- MinValue.feature
|-- Occupations
| |-- OccupationTranslation.feature
| |-- OccupationsWithPreConditions.feature
| |-- Accelerated.feature
| `-- OccupationsWithoutPreConditions.feature
|-- Florida.feature
我尝试过使用(?m)(\bAccelerated\.feature\b)(?=[\s\|\-\n]*\1)
的不同组合,但没有成功。你知道吗
代码
See regex in use here
使用
s
修饰符在(单行)上,如regex demo here注意:由于某种原因,上面的模式(启用单行模式)导致regex101超时。我在代码生成器下测试了代码,它运行得很好(doesn't timeout when used in code)。你知道吗
解释
((?<= )[\w.]+$)
将以下内容捕获到捕获组1中(?<= )
正面向后看确保前面是空格[\w.]+
匹配任意单词字符或点字符一次或多次$
在行尾断言位置(?=[\s\S]*(?<= )(\1)$)
积极的前瞻性确保后面的匹配[\s\S]*
任意字符任意次数。(此处不使用点,因为它与换行符不匹配。如果启用单行标志,则实际上可以将[\s\S]
替换为.
,这将强制.
也匹配换行符)(?<= )
正面向后看确保前面是空格(\1)
将以下内容捕获到捕获组2中\1
与捕获组1最近匹配的文本相同$
在行尾断言位置通俗地说,如果文件名在空格之后,在行尾之前,那么它就匹配了整个文件名。然后,它将查找具有相同规则(前面的空格、后面的行尾)的副本。你知道吗
相关问题 更多 >
编程相关推荐