有没有办法缩短这个正则表达式?

时间:2014-02-22 06:31:14

标签: regex

以下正则表达式适合我的模式。但是,我想知道是否有办法缩短它。我不能使用\ w因为我只想要不区分大小写的英文字母。因为模式重复,我想知道如果可能的话我是否可以分组。

([A-Za-z]{5}\.[A-Za-z]{3}\.[A-Za-z]{3}\.[A-Za-z]{3}\.[0-9]{3}\.[0-9]{2})\.([0-9]{8}\-[0-9]{6})\.csv

2 个答案:

答案 0 :(得分:3)

你可以缩短一点:

([A-Za-z]{5}(\.[A-Za-z]{3}){3}\.[0-9]{3}\.[0-9]{2})\.([0-9]{8}-[0-9]{6})\.csv

答案 1 :(得分:3)

\d而非[0-9]显然是缩短它的方法:

([A-Za-z]{5}\.[A-Za-z]{3}\.[A-Za-z]{3}\.[A-Za-z]{3}\.\d{3}\.\d{2})\.(\d{8}\-\d{6})\.csv

接下来,巩固@anubhava指出的重复模式:

([A-Za-z]{5}\.([A-Za-z]{3}\.){3}\d{3}\.\d{2})\.(\d{8}\-\d{6})\.csv

一开始就设置不区分大小写会使正则表达式进一步缩短......

(?i)([a-z]{5}\.([a-z]{3}\.){3}\d{3}\.\d{2})\.(\d{8}\-\d{6})\.csv

...同时还匹配.CSV(即仅与.csv个)文件,您可能没有考虑这些文件但通常是有效的。

最后,有4个括号可能是无关的和可有可无的:

(?i)[a-z]{5}\.([a-z]{3}\.){3}\d{3}\.\d{2}\.\d{8}\-\d{6}\.csv