Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正则表达式的Java问题_Java_Regex_String - Fatal编程技术网

正则表达式的Java问题

正则表达式的Java问题,java,regex,string,Java,Regex,String,以下代码有点问题: ^([0-9]{17})\.zip$ 我认为这应该阻止任何超过17个字符的字符串通过。但是,它允许名称超过17个字符的文件通过 你知道会有什么问题吗?或者我的符号是否有误 提前感谢您的正则表达式将匹配一个文件名,该文件名由以“.zip”结尾的17位数字(0到9)组成。如果您的代码允许较长的文件名通过,那么很可能是使用它的代码的错误,而不是正则表达式本身的错误。您可以同时发布一些代码吗?您需要将表达式转换为: ^([0-9a-zA-Z]{,17})\.zip$ 否则它只考虑

以下代码有点问题:

^([0-9]{17})\.zip$
我认为这应该阻止任何超过17个字符的字符串通过。但是,它允许名称超过17个字符的文件通过

你知道会有什么问题吗?或者我的符号是否有误


提前感谢

您的正则表达式将匹配一个文件名,该文件名由以“.zip”结尾的17位数字(0到9)组成。如果您的代码允许较长的文件名通过,那么很可能是使用它的代码的错误,而不是正则表达式本身的错误。您可以同时发布一些代码吗?

您需要将表达式转换为:

^([0-9a-zA-Z]{,17})\.zip$
否则它只考虑数字。

您的正则表达式只允许文件名正好包含21个字符:17位,1点,然后是“zip”

将其限制为17的一种方法是:

^([0-9]{13})\.zip$

考虑到您希望允许任何少于17个字符的字符串,您可能应该使用“.”,它匹配任何字符,而不仅仅是数字或字母

尝试将正则表达式更改为:^.{1,17}\.zip$(因为这是Java,所以对escape使用双反斜杠)


您的表达式将仅匹配17位数字,后跟
.zip
。如果不仅要匹配数字,还要匹配字符,并将限制放宽到最多17位(至少1位),则应将axpression更改为:

^([\w]{1,17})\.zip$

您的意思是:超过17个字符,没有
.zip
?您的符号要求正好是17位数字。
^([\w]{1,17})\.zip$