求一正则表达式,格式如下sl:\\|f|文件名|大小|md5码|说明:
1、以“sl:\\|f|”开头
2、文件名,大小,md5码首尾都有“|”符
3、文件名指一个文件的名称,后辍名不限,但要求不能包含系统文件名不允许出现的符号
(即文件名中不能出现\/:*?"<>|)
4、大小是整形数
5、md5码是任意字符补充:
最好能通过正则表达式完成格式验证
如果没有的话,能用一个准确的js函数完成格式验证也行
第一个准确给出答案的追加50分

解决方案 »

  1.   

    1、什么环境?用在C#还是js,还是验证控件中
    2、什么目的?验证,提取还是替换?
    3、大小的整型数是否允许0
    4、md5是任意字符,那是否允许“|”,如果允许,如何区分哪一个才是属于md5这一字段的
    5、给几个测试用例,尽量包含可能出现的情况sl:\\\\\|f\|[^\\/:*?"<>|]+\|[1-9][0-9]*\|[^|]+\|
      

  2.   

    MD5码应该只包含0-9、A-F才对,而且大部分情况下是固定32位的
    sl:\\\\\|f\|[^\\/:*?"<>|]+\|[1-9][0-9]*\|[0-9a-fA-F]+\|
      

  3.   

    不好意思 ,没说清楚,我要的是asp.nte,js环境下的正则验证,是验证格式是否正确,
    建于1楼提到提取,这里我就补充一下,希望能再加三个js正则
    一是提取文件名
    二是提取文件大小
    三是提取md5码
      

  4.   


    asp.net,js环境,汗...
    没有回答我其他问题,抱歉,写不出来
      

  5.   

    6楼的看清楚哦
    是“
    但要求不能包含系统文件名不允许出现的符号 
    (即文件名中不能出现\/:*?" <>|) ”
      

  6.   

    sl:\\\\\|f\|[^\\/:*?"<>|]+\|[1-9][0-9]*\|[0-9a-fA-F]+\|
      

  7.   

    5楼的非常抱歉,
    第3个问题---大小的整型数不允许0
    第4个问题---MD5码指的是只包含0-9、A-F的任意位数字符
      

  8.   

    :\\\\\|f\|[^\\/:*?"<>|]+\|[1-9][0-9]*\|[0-9A-F]+\|
    大小的整型数不允许0   - 满足
    MD5码指的是只包含0-9、A-F的任意位数字符 -ok
      

  9.   

    try...<script type="text/javascript">
    var data = "sl:\\\\|f|abc 123.txt|123|A2AAA5a1956af2l487ecdd|";
    var reg = /^sl:\\\\\|f\|[^\\\/:*?"<>|]+\|[1-9][0-9]*\|[A-Z0-9]+\|$/i;
    alert(reg.test(data));
    </script>
      

  10.   

    or...<script type="text/javascript">
    var str = "sl:\\\\|f|abc 123.txt|123|A2AAA5a1956af2l487ecdd|";
    var reg = /^sl:\\\\\|f\|([^\\\/:*?"<>|]+)\|([1-9][0-9]*)\|([A-Z0-9]+)\|$/i;
    if(reg.test(str))
    {
        document.write("源字符串:" + str + "<br />");
        document.write("文件名:" + RegExp.$1 + "<br />");
        document.write("大小:" + RegExp.$2 + "<br />");
        document.write("MD5码:" + RegExp.$3 + "<br />");
    }
    else
    {
        document.write("不符合格式要求!");
    }
    </script>