$uploadcon="attach.gif[/img] 其他上传附件:金山词霸.torrent";
//preg_match_all("|(?:/upload/)?(\w+\.\w+)|",$uploadcon,$regs);
preg_match_all("/(upload\/)?([a-zA-Z0-9_".chr(0x80)."-".chr(0xff)."]+\.[a-zA-Z0-9]+)/",$uploadcon,$regs);
print_r($regs);中文到底是0x80-0xff还是0xa1-0xff我不清楚.
不过应该对你的程序不打紧吧。

解决方案 »

  1.   

    asc码0x80以下都是单字节字符.
      

  2.   

    $uploadcon="attach.gif[/img] 其他上传附件:金山词霸.torrent";
    //preg_match_all("|(?:/upload/)?(\w+\.\w+)|",$uploadcon,$regs);
    //preg_match_all("/(upload\/)?([a-zA-Z0-9_".chr(0x80)."-".chr(0xff)."]+\.[a-zA-Z0-9]+)/",$uploadcon,$regs);
    preg_match_all("/(upload\/)?([a-zA-Z0-9_\x80-\xff]+\.[a-zA-Z0-9]+)/",$uploadcon,$regs);
    print_r($regs);
    简化版.