以下正则表达式适合我的模式。但是,我想知道是否有办法缩短它。我不能使用\ 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
答案 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