首页 > 解决方案 > 使用文件类型匹配带有 2 个或 3 个连字符的字符串(正则表达式)

问题描述

我正在尝试编写一个正则表达式,它匹配带有 2 个或 3 个连字符的字符串,后跟一个文件类型。到目前为止,我无法概括这一点以使其适用于任何一种情况。任何帮助都会很棒。

关于琴弦:

• 每个连字符分隔的子字符串的第一个字符都将大写。

• 每个子字符串的长度为 2 个或更多字符。

• 文件类型为 3 或 4 个字符长。

这就是我能想到的:[AZ][az]{2,}-[AZ][az]{2,}.[az]{3,4}

标签: regex

解决方案


您需要添加另一个字母字符组,该?选项表示可以存在前面带括号的组的 0 或 1。您还忘记了.通常代表任何单个字符的转义。此正则表达式应符合您的要求:

^[A-Z][a-z]+-[A-Z][a-z]+(-[A-Z][a-z]+)?\.[a-z]{3,4}$.

但是,请记住,文件扩展名有时可能包含数字,例如.bz2. 除非您可以直接控制文件扩展名,否则我会改用它:

^[A-Z][a-z]+-[A-Z][a-z]+(-[A-Z][a-z]+)?\.[a-z0-9]{3,4}$.


推荐阅读