匹配具有两个或更多唯一扩展名的文件的正则表达式

问题描述 投票:0回答:1

我正在尝试创建匹配具有两个或更多扩展名的文件的正则表达式,但我想忽略重复的扩展名。

我想要的结果示例:

videogame.exe.exe     - Don't match
unknown.pdf.exe       - Match
Resume.doc.docx       - Match
SalesNumbers.pdf.pdf  - Don't Match
summary.pdf.docx      - Match

目前我有以下正则表达式:

(\.\w+)(?!\1)\.\w+

这几乎有效。但是,如果第二个扩展包含第一个,我不会得到匹配。以下示例不提供匹配项,但我希望它们提供。

Resume.doc.docx
text.exe.exe1
regex regex-lookarounds regex-group
1个回答
0
投票

这个正则表达式,使用单词边界

(\.\w+)(?!\1\b)\.\w+

在线演示

正则表达式匹配如下:

节点 说明
(
分组并捕捉到:
\.
.
\w+
单词字符(a-z、A-Z、0-9、_)(1 次或多次(匹配尽可能多的数量))
)
结束
(?!
向前看看看有没有:
\1
捕获匹配的内容
\b
单词字符 (\w) 和非单词字符锚点之间的边界锚点
)
展望结束
\.
.
\w+
单词字符(a-z、A-Z、0-9、_)(1 次或多次(匹配尽可能多的数量))
© www.soinside.com 2019 - 2024. All rights reserved.