Java 正则表达式从文件列表中选择带2个点的文件名
我需要一个regex表达式,用于从zip文件的文件列表中选择具有特定文件名格式的文件。Java 正则表达式从文件列表中选择带2个点的文件名,java,regex,Java,Regex,我需要一个regex表达式,用于从zip文件的文件列表中选择具有特定文件名格式的文件。 我需要选择文件名为以下文件格式的文件: <A-Z/a-z/0-9/special char>.<A-Z/a-z/0-9/special char>.zip 它可以是字母或数字或特殊字符或组合它们之间,点之间 请注意,文件名中只能有2个点。 除2点以外的任何内容都不是有效的文件名,将不会被选择 以下是无效的文件名: abc.zip abc.123.efg.zip as_1.efg.dd
我需要选择文件名为以下文件格式的文件:
<A-Z/a-z/0-9/special char>.<A-Z/a-z/0-9/special char>.zip
它可以是字母或数字或特殊字符或组合它们之间,点之间
请注意,文件名中只能有2个点。
除2点以外的任何内容都不是有效的文件名,将不会被选择
以下是无效的文件名:
abc.zip
abc.123.efg.zip
as_1.efg.ddd.rr.zip
ee_rr.zip
我尝试了以下正则表达式:
[^.]*\\.[^.].zip
但不起作用。也许这是错误的。
请让我知道选择所需文件名的正确正则表达式,您可以尝试此操作(假设您的正则表达式位于Java字符串中,我会使用双反斜杠):
另外,一个很好的选择是
我在这里测试过。通过此输入:
abc123.34efg.zip
qwe.123.zip
as_2ww.as_tyy.zip
23.fff.zip
asd.efg.zip
abc.zip
abc.123.efg.zip
as_1.efg.ddd.rr.zip
ee_rr.zip
还使用此输入进行了测试(感谢)
点之间只有一个字符,或者缺少*
?最后一点也可能缺少反斜杠…你可能想要这个[^.]*\.[^.]*\.[^.]*\.zip
我认为我之前的评论不管用,我认为下面的方法管用[^\.]+\.[^\.]+\.zip
格式是。zip
正则表达式在字符串中?你能试试我的答案吗?我想现在可以了。如果没有,请让我知道。它允许这些无效值.zip
.a.zip
a.zip
,您可以将其减少为^(?[^\.]+\){2}zip$
(或者,在转义反斜杠后,^(?[^\.]+\){2}zip$
,如果用户决定只需要3或4个点,而不是2个点,则更容易扩展。
^[^.]+\\.[^.]+\\.zip$
^(?:[^.]+\\.){2}zip$)
abc123.34efg.zip
qwe.123.zip
as_2ww.as_tyy.zip
23.fff.zip
asd.efg.zip
abc.zip
abc.123.efg.zip
as_1.efg.ddd.rr.zip
ee_rr.zip
..zip
a..zip
.a.zip