写一个简单的正则表达式,但我从来都不是很擅长这个.
我要做的是检查字符串(文件名)以确保它只包含az,AZ,0-9或特殊字符下划线(_)句点(.)或短划线( - ).
这就是我所拥有的
if(filename.length() < 1 || !filename.matches("^[a-zA-Z0-9[.][_][-]]+"))
return false;
else
return true;
Run Code Online (Sandbox Code Playgroud)
这似乎有效,但对我来说看起来并不优雅.有没有更好/更可读的方式来写这个?
提前致谢!只是想学习如何更好地编写这些bugger.
-将
ovg*_*vin 10
您不需要使用[]内部字符类.
所以,你可以写:
^[-a-zA-Z0-9._]+
Run Code Online (Sandbox Code Playgroud)
此外,您可以使用\\w而不是a-zA-Z0-9_.
所以,正则表达式将是:
^[-\\w.]+
Run Code Online (Sandbox Code Playgroud)
此外,此正则表达式将匹配像StackOverflow 22.10$$2011消费一样的字符串StackOverflow 22.10.如果你需要你的字符串完全由这些字符组成,你应该结束模式$- 字符串的结尾:
^[-\\w.]+$
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34662 次 |
| 最近记录: |