2014-09-04 29 views
-1

我需要RegEx模式的帮助才能在上载前以特定格式验证文件名。其格式为:如何正则表达式文件名称模式XXXX_YYYYYY_filename.pdf

XXXX_YYYY_anyFileName.extension

  • XXXX是一个客户号是字母数字与长度10
  • YYYY是文档数,且必须仅是数字。
  • anyFileName将是最终用户提供的常规文件名。
  • 扩展名将是上传文件的默认扩展名。

我试图此作为测试:

([A-ZA-Z0-9 _] +)

但以下图案xxxx.pdf传递。我不知道如何使下划线成为必填项。

+0

为什么这会被投票? – 2014-09-04 23:27:07

回答

2

试试这个:

([A-Za-z0-9]{10})_([0-9]+)_(.+)\.(.+) 
^    ^  ^ ^
|    |   `-----` Any char, at least one 
|    | 
|    ` A number must appear at least once 
` only chars within "A-Za-z0-9" are allowed and must appear 10 times 

为了迫使整个字符串必须在正则表达式匹配上面,你可能必须通过^和后缀与$前缀它。

尝试在这里:http://regex101.com/r/qQ2dE4/5

1

如果你不想在你的文件名,特殊字符和扩展,你可以使用这样的正则表达式:

^[A-Za-z\d]{10}_\d+_[A-Za-z\d]+\.[A-Za-z\d]+$ 

Working demo

enter image description here