[英]Regex to validate a filename
我需要在这样的方法中验证a。
validateFileName(Editable s) {
String filtered_str = s.toString();
if (filtered_str.matches(".*[regexp].*")) {
filtered_str = filtered_str.replaceAll("[regxp]", "");
s.clear();
s.append(filtered_str);}
我应该使用哪个regexp来排除所有非法字符和空格? 我正在使用linux
如果您使用的是与POSIX兼容的操作系统,则文件名中的合法字符为az,AZ,0-9,句点,下划线和连字符。 因此,匹配“非法”字符的正则表达式将是
[^-_.A-Za-z0-9]
附录:如果您想要一个完全可移植的文件名。 正如我在下面的Josip评论中所纠正的那样,POSIX本身实际上允许更多的角色。
如果您的想法只是排除ilegal和space char,您可以使用以下内容:
'^[^*&%\\s]+$'
在哪里可以添加任何“ilegal”字符到字符列表中(在这种情况下它忽略*,&,%和空格) \\s
是空格! []
的^
是正则表达式语法的一部分,它意味着: 不匹配[]
内的任何字符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.