使用文件类型(regex)匹配带有2个或3个连字符的字符串

时间:2018-07-27 21:09:52

标签: regex

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

关于字符串:

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

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

•文件类型将是3个或4个字符。

这是我能够想到的: [A-Z] [a-z] {2,}-[A-Z] [a-z] {2,}。[a-z] {3,4}

1 个答案:

答案 0 :(得分:0)

您需要使用?选项添加另一个字母字符组,该选项表示可以存在前面括号组中的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}$