【发布时间】:2020-09-30 16:58:01
【问题描述】:
我试图验证用户输入的字符串是否正确。
- 不应以 assets/ 开头
- 不应以 / 结尾
- 不应以任何文件扩展名结尾,例如 .html 或 .php 或 .jpg
- 不应包含点 .
我正在尝试使用下面的正则表达式,但它无法正常工作。
^([a-z]:)*(\/*(\.*[a-z0-9]+\/)*(\.*[a-z0-9]+))
我的测试用例
有效路径
- 样本/你好/图像
- sample/hello_vid/user/data
- test/123/user_live/images
路径无效
- assets/sample/hello/images
- sample/hello_vid/user/data/
- test/123/user_live/images/index.html
- hii/sk.123/data
- ok/bye/last.exe
【问题讨论】:
-
你需要它只是一个正则表达式还是可以使用 System.IO.Path 的方法?
-
“它不应该包含一个点”这足以排除 .jpg、.pdf 等
-
路径可以包含比
[a-z0-9]+更多的字符。考虑使用\w+。