6

我是java中正则表达式的新手。如何检查文件名是否具有以下格式update_9_0_27?是这样的[0-9][\\_][0-9][\\_][0-100]吗?

4

2 回答 2

7

以下应该有效:

^[a-zA-Z]+_\d_\d_\d{1,2}$

^和是字符串锚的$开头,因此您不会只匹配字符串的一部分。每个\d将匹配一个数字,{1,2}最后的\d意思是“匹配一位到两位数(包括)”。

如果update文件名的部分始终不变,则应使用以下内容:

^update_\d_\d_\d{1,2}$

请注意,在 Java 字符串中创建此正则表达式时,您需要转义每个反斜杠,因此字符串看起来像"^update_\\d_\\d_\\d{1,2}$".

于 2013-05-16T23:46:19.973 回答
2

数字位置是否固定,即 1-1-2?

^update\_\d\_\d\_\d\d$

在 Java 字符串中使用,您需要转义反斜杠

"^update\\_\\d\_\\d\\_\\d\\d$"

如果[0-9][\\_][0-9][\\_][0-100]你的意思是个位数、下划线、个位数、下划线、零到一百,并且这个序列可以出现在字符串中的任何位置,那么

".*[0-9][_][0-9][_](100|[1-9][0-9]|[0-9]).*"

请注意,我现在已将其用作指定文字下划线[_]的替代方法。\_最后一部分专门针对 0-100 进行测试。

于 2013-05-16T23:45:41.067 回答