如何用正则实现路径检查

需要过滤用户输入的路径,路径为相对路径,
允许用/或\
扩展名必须是.zip或.ZIP
文件名不能为空,即不允许出现/www/.zip这样的路径,
不允许出现../ ./ .../ /../ /./ /. /.. 这样可能会导致路径回退之类的字符
路径中不包括盘符
只允许出现字母,下划线,数字和.其他字符不允许出现
可以有中文目录
请问如何实现,多谢

[code="java"]
Pattern p = Pattern.compile("^[/\\]?((?!\.\.?[/\\])([_\.a-zA-Z0-9\u4e00-\u9fa5]+[/\\]))*[_\.a-zA-Z0-9\u4e00-\u9fa5]+\.(?:zip|ZIP)$");
[/code]