限制名称大小和文件扩展
我需要对icefaces输入文件组件进行正则表达式,文件名长度应小于15个字符并且有适当的扩展。 我写了这个,但是失败了:
^ {0,100} +(ASF |。AVI | CSV | PDF | DOC | DOCX |点| EML | GIF | HTM |全文| IDX | TIF | JPG | JPEG | BMP | PNG | MP3 |英里|留言| PPT | pptx | pst | rtf | txt | wav | wma | xls | xlsx | zip“+”| ASF | ASI | CSV | PDF | DOC | DOCX | DOT | EML | GIF | HTM | HTML | IDX | TIF | JPEG | BMP | PNG | MP3 | MPG |留言| PPT | PPTX | PST | RTP | TXT | WAV | WMA | XLS | XLSX | ZIP)
文件名长度应小于15
这可以通过积极的预测(?=.{0,15}$)
。 但是,对于负面的预测,这种情况可以更加优雅地表达。 我们可以在开始处使用(?!.{16})
负向预测,这意味着如果有16个字符,则匹配应该失败。
为了缩短模式,您也可以使用嵌入标志表达式(?i)
。
所以,你可以使用
(?i)^(?!.{16}).+[.](?:asf|avi|csv|pdf|doc|docx|dot|eml|gif|htm|html|idx|tif|jpg|jpeg|bmp|png|mp3|mpg|msg|ppt|pptx|pst|rtf|txt|wav|wma|xls|xlsx|zip)$
查看正则表达式演示。
请注意, .+
会尽可能多地匹配换行符号以外的任何1个以上的字符,直到最后.
随后是其中一个扩展。
有点缩短版本?
量词:
(?i)^(?!.{16}).+[.](?:asf|avi|csv|pdf|docx?|dot|eml|gif|html?|idx|tif|jpe?g|bmp|png|mp[3g]|msg|pptx?|pst|rtf|txt|wav|wma|xlsx?|zip)$
通过使用扩展功能来简化主要部分,保持简单:
^(?=.*.(?i)(asf|avi|...etc...|zip)$).{,14}$
链接地址: http://www.djcxy.com/p/45485.html
上一篇: limit name size and file extention
下一篇: Using Tika for mime type detection gives unexpected results