文件名的正则表达式 - 限制名称大小和文件扩展名
regular expression for file name - limit name size and file extention
我需要 icefaces 输入文件组件的正则表达式,文件名长度应小于 15 个字符并具有适当的扩展名。我写了这个,但它失败了:
^.{0,100}.+.(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"+
"|ASF|ASI|CSV|PDF|DOC|DOCX|DOT|EML|GIF|HTM|HTML|IDX|TIF|JPG|JPEG|BMP|PNG|MP3|MPG|MSG|PPT|PPTX|PST|RTP|TXT|WAV|WMA|XLS|XLSX|ZIP)
file name length should be less than 15
这可以通过积极的前瞻来实现 (?=.{0,15}$)
。但是,如果使用负前瞻,则可以更优雅地表达这种情况。我们可以使用 (?!.{16})
negative lookahead 锚定在开头,这意味着如果有 16 个字符,匹配应该失败。
要缩短模式,您还可以使用 embedded flag expression (?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)$
参见regex demo。
请注意,.+
将匹配除换行符以外的任何 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}$
我需要 icefaces 输入文件组件的正则表达式,文件名长度应小于 15 个字符并具有适当的扩展名。我写了这个,但它失败了:
^.{0,100}.+.(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"+ "|ASF|ASI|CSV|PDF|DOC|DOCX|DOT|EML|GIF|HTM|HTML|IDX|TIF|JPG|JPEG|BMP|PNG|MP3|MPG|MSG|PPT|PPTX|PST|RTP|TXT|WAV|WMA|XLS|XLSX|ZIP)
file name length should be less than 15
这可以通过积极的前瞻来实现 (?=.{0,15}$)
。但是,如果使用负前瞻,则可以更优雅地表达这种情况。我们可以使用 (?!.{16})
negative lookahead 锚定在开头,这意味着如果有 16 个字符,匹配应该失败。
要缩短模式,您还可以使用 embedded flag expression (?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)$
参见regex demo。
请注意,.+
将匹配除换行符以外的任何 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}$